node.js中socket.io和websockets之间有什么区别?
它们都是服务器推送技术吗?我觉得唯一的区别是,
socket.io允许我通过指定事件名称来发送/发送消息.
在socket.io的情况下,来自服务器的消息将到达所有客户端,但对于websockets中的相同内容,我被迫保留所有连接的数组并循环通过它以向所有客户端发送消息.
另外,我想知道为什么网络检查员(如Chrome/firebug/fiddler)无法从服务器捕获这些消息(来自socket.io/websocket)?
请澄清一下.
我们正在开发一个仅在现代浏览器(IE10 +)上运行的Web应用程序,原因各不相同.
我们实现的功能之一是Socket.io 1.x. 但是,默认情况下,Socket.io客户端会尝试支持较旧的浏览器,因此它会启动与长轮询的连接,然后将其更新到WebSockets.这是浪费时间和资源,因为我们知道浏览器支持WS.
我一直在搜索,我只能找到这个wiki页面,但是,它是关于Socket.io 0.9的.
最后,我找到了engine.io-client的文档(Socket.io-client基于1.x分支).这是我编写的代码,似乎正在运行.但是,我想知道它是否正确或者我做错了什么:
io.connect('https://...', {
upgrade: false,
transports: ['websocket']
})
Run Code Online (Sandbox Code Playgroud)
奇怪的是,仅仅将transports属性设置为数组websockets是不够的; 我也不得不禁用upgrade.它是否正确?
我做了一些新的发现.
随着transports设置为['websocket']只,它没有任何区别阉羊upgrade被启用.这是正常的吗?