2012-10-20 41 views
6

Tôi thực hiện một số ví dụ trò chuyện như sau: http://psitsmike.com/2011/09/node-js-and-socket-io-chat-tutorial/Khả năng tương thích với IE và Socket.io

Khi tôi sử dụng Chrome và Firefox, mọi thứ hoạt động như sự quyến rũ. Với IE9 hoặc Opera, một số sự kiện socket.io không kích hoạt (ví dụ: ngắt kết nối) hoặc kích hoạt quá muộn và việc nhận dữ liệu quá chậm.

Tôi đã cài đặt mô-đun node.js và socket.io với phương thức npm.

Vui lòng trợ giúp.

Trả lời

8

Socket.IO hoạt động tốt nhất với ổ cắm web. Trước năm 2012, hầu hết các trình duyệt không hỗ trợ websockets (source).

Với các trình duyệt như vậy, socket.io rơi trở lại các phương pháp bỏ phiếu khác nhau, nhưng có thể dẫn đến sự cố bạn đang gặp phải, chẳng hạn như tốc độ dữ liệu thấp và sự kiện chậm trễ (trễ 1-2 phút). Để khắc phục, điều này bạn nên cố gắng để kích hoạt ổ cắm flash.

io.set('transports', [ 
    'websocket' 
    , 'flashsocket' 
    , 'htmlfile' 
    , 'xhr-polling' 
    , 'jsonp-polling' 
]); 

Ngoài ra, hãy đảm bảo cổng chính sách flash (mặc định 10843) có thể truy cập được từ ứng dụng khách.

+0

'htmlfile' là cách ActiveX cho IE – InspiredJW

+3

Khi tôi thử điều này, đối tượng' io' không có phương thức ''set''. Đây là phía máy khách, sau khi bao gồm 'socket.io.js' – Khior

+0

Cảm ơn Martin, đã giải quyết vấn đề của tôi với IE9 gây ra lỗi đọc ECONNRESET khi nhấp vào Làm mới. Bây giờ nó kích hoạt ngắt kết nối một cách chính xác và ngay lập tức giết người dùng của tôi. Khi tôi - Tôi đã thực hiện điều này trong tệp phía máy chủ của mình, trực tiếp sau khi yêu cầu socket.io –

Các vấn đề liên quan