我使用node.js和socket.io。 我与socket.io的连接速度有问题。 在Internet Explorer和Opera中,我遇到连接速度问题。 - 当我使用flashsocket或websocket时。 当我使用传输模式时,XHR连接很快 - 在所有浏览器中(IE,FF,Chrome,Opera)。
传输模式有什么区别 - XHR-polling和flash / websocket? 什么是最好的交通方式?如何优化连接速度是socket.io?
感谢您的建议!
答案 0 :(得分:31)
如果Web浏览器之间连接的一般速度不同,我会感到惊讶,但是你会发现Internet Explorer和Opera中初始连接延迟的原因是本机WebSocket支持不可用因为默认情况下已被禁用。因此,如果选择FlashSocket,则需要在建立连接之前下载其他Flash对象(SWF文件)。
WebSockets正在IE10中引入,在Opera中它们可用,但默认情况下禁用。
传输模式有什么区别 - XHR-polling和flash / websocket?
什么是最好的交通方式?
任何本机支持它的Web浏览器的WebSockets(Chrome,Firefox,Safari)。如果Flash对象(SWF文件)位于浏览器缓存中,则连接速度应该很快。如果不是那么会有延迟。 XHR Long-Polling是一个很好的解决方案,可以跨浏览器工作,但有负面因素:
如何优化连接速度是socket.io?
(我对socket.io很新,这只是一个建议)
我会查看configuring Socket.io docs,看看您是否可以根据连接的浏览器有条件地设置transports
。根据您的经验,这可能是:
答案 1 :(得分:5)
要减少连接时间,可以尝试使用“connect timeout”参数减少连接超时(默认为10秒)。
例如,要将连接超时减少到1秒:
socket = io.connect('http://your-site.com',{'connect timeout': 1000});