Tôi hiện đang làm việc với WebSockets và máy chủ PHP: hoạt động rất tốt với Google Chrome và Opera nhưng không hoạt động với Firefox 6.JavaScript và WebSockets: sử dụng giao thức cụ thể
Tôi nghĩ là do phiên bản giao thức này sử dụng cuối cùng: Tôi thấy một nơi nào đó mà nó sử dụng phiên bản thứ bảy, trong khi đó là một phiên bản cũ hơn cho Google Chrome và Opera.
Vì vậy, tôi đổi mã máy chủ của tôi để quản lý phiên bản mới này: bởi băm-key an toàn với 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 và chất liệu khác, Firefox thành công để kết nối. Nhưng nếu một khách hàng khác muốn kết nối (ngay cả một Firefox khác), thì Firefox đầu tiên sẽ kết nối với chính nó.
tôi thấy rằng bộ đệm nhận bởi socket_recv() là một trong hai sản phẩm nào hoặc băm ...
Vì vậy, tôi đã quyết định bỏ qua ý tưởng về quản lý giao thức được sử dụng bởi Firefox 6 (không có tài liệu hướng dẫn trên Internet ... !): Tôi nghĩ rằng có thể dễ dàng xác định giao thức để sử dụng trực tiếp trong JavaScript.
On this page họ nói rằng chúng ta có thể viết này:
var mySocket = new WebSocket("http://www.example.com/socketserver", "my-custom-protocol");
Nhưng những gì chúng ta nên viết thay vì "my-tùy chỉnh giao thức" để sử dụng các giao thức của Google Chrome và Opera quản lý?
Cảm ơn trước!
Có phiên bản 'hybi-00' còn được gọi là 'hixie-76' và bao gồm hai khóa nhị phân. Ngoài ra còn có 'hybi-07' mới sử dụng khóa bảo mật mà bạn đã đăng. Bạn sẽ phải tạo một cái bắt tay chính xác tùy thuộc vào phiên bản mà cái bắt tay * yêu cầu * là. Vì cả hai phiên bản đều sử dụng các tên tiêu đề khác nhau cho các khóa, nên có thể. – pimvdb
Cảm ơn câu trả lời của bạn! Vì vậy, tôi đã thử này: 'var mySocket = new WebSocket (" http://www.example.com/socketserver "," hybi-00 ");' nhưng tiêu đề gửi bởi Firefox vẫn như cũ ... Sự khác biệt duy nhất bây giờ là có _Sec-WebSocket-Protocol: hybi-00_ trong tiêu đề, nhưng nó vẫn sử dụng phiên bản thứ bảy. – KorHosik
Tôi nghĩ tôi chưa hoàn toàn rõ ràng. Mỗi trình duyệt gửi một trong hai phiên bản và bạn không thể kiểm soát điều đó. Tuy nhiên, trên máy chủ, bạn có thể kiểm tra phiên bản nào đã được gửi và trả lời thích hợp (tức là phản hồi bắt tay chính xác). – pimvdb