engine.io和socket.io有什么区别?

L N*_*L N 48 node.js socket.io

如果这个问题是重复的,请纠正我.关于node.js,我使用socket.io进行从客户端应用程序到服务器应用程序的实时套接字连接.我刚刚听说过engine.io,engine.io是socket.io的替代品吗?我在engine.io网站上找不到任何有用的信息

提前致谢

Ray*_*nos 94

engine.io是一个比socket.io更低级的库.

引擎是Socket.IO什么是Connect到Express.

如果您想要较低级别的抽象,请使用engine.io.如果你想要一个websocket抽象,继续使用socket.io.

如果你在socket.io之上构建一个库/框架,那么engine.io对你更感兴趣.

如果你在socket.io之上构建一个应用程序,socket.io对你更感兴趣.


kid*_*tal 20

socket.io建立在engine.io之上.

socket.io是带有铃声和口哨声的engine.io.

如果你不需要socket.io有(redis商店,组等),只需使用引擎.

  • 我相信当 Socket.IO 1.0 推出时,它将基于 Engine.IO 构建,但现在(0.9)不是:https://groups.google.com/d/msg/socket_io/BudZpQiyMbQ/tnm-I-WNJWkJ (2认同)

kho*_*ter 18

游戏有点晚了:-),但我会在这里为后人提及它.

除了"更低级别"之外,最重要的区别之一是socket.io将首先从websockets开始并降级,直到找到可以工作的传输.另一方面,engine.io将从短轮询开始(并在侧面升级直到它撞到墙壁).

为什么?

从用户的角度来看,不成功的WebSocket连接可以在至少等待实时应用程序开始交换数据的10秒内进行转换.这会敏锐地伤害用户体验.

目前(2013年),websockets尚未普及(例如旧浏览器,蜂窝网络等),因此从XHR 1st开始是明智的.

有关详细信息,请参阅https://github.com/LearnBoost/engine.io(目标部分).


Den*_*ger 8

Socket.IO v0.9已经过时且有点儿错误,而Engine.IO是临时继任者.Socket.IO v1.0(将很快发布)将使用Engine.IO并且比v0.9好很多.

在我的测试中,Engine.IO似乎比Socket.IO v0.9表现更好,请参阅比较:https://medium.com/node-js-javascript/b63bfca0539

连接丢失后,Socket.IO尝试重新连接一段时间,而Engine.IO则没有.

Socket.IO支持房间,而Engine.IO则不支持.如果您有连接收听不同的数据/频道,您将需要房间(通过这些模块或您自己的实施).