Câu hỏi này liên quan đến các phiên bản socket.io < 0.9.x. Phiên bản mới hơn có các phương tiện vận chuyển khác nhau và phương pháp thiết lập phương tiện vận chuyển.node.js và socket.io. cấu hình kiểu vận chuyển cho websocket?
Tôi kiểm tra nút js và socket.io trong hai tuần. khi tôi bắt đầu, tôi gặp vấn đề với chức năng socket.send(message)
trong ứng dụng khách. Tôi không thể gửi bất kỳ tin nhắn nào đến máy chủ. Nhưng tôi vẫn có thể nhận tin nhắn từ máy chủ. Tôi giải quyết vấn đề này khi tôi phát hiện việc vận chuyển cấu hình của phía máy chủ:
socket.set('transports',[
'xhr-polling'
, 'jsonp-polling'
]);
Tất cả mọi thứ tốt. Bây giờ tôi cũng có thể gửi tin nhắn đến máy chủ. Nhưng tôi vẫn có một câu hỏi tại sao tôi phải cấu hình vận chuyển. Mặc định socket.io sử dụng cài đặt vận chuyển websocket như sau:
socket.set('transports', [
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, 'jsonp-polling'
]);
để sử dụng websocket lúc đầu, không phải xhr-polling. Nhưng máy chủ không thể nhận bất kỳ tin nhắn nào được gửi từ máy khách khi sử dụng socket.send(msg)
thậm chí socket.emit(...)
.
Vì vậy, vấn đề là: những gì không hỗ trợ websocket ở đây? trình duyệt hoặc node.js ... Tôi xin lỗi nhưng tôi đã tìm kiếm rất nhiều trang từ google và tôi đã không tìm thấy câu trả lời cho điều này.
tôi sử dụng Node.js phiên bản 0.8.16, socket.io phiên bản 0.9.13 và các trình duyệt mới nhất: chrome, firefox, opera
Tôi muốn sử dụng WebSocket không XHR-bỏ phiếu.