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



关于node.js,我使用套接字。IO用于从客户端应用程序到服务器应用程序的实时套接字连接。我刚刚听说了engine.io。是发动机。IO替代socket.io?我找不到任何关于发动机的有用信息。io的网站。

引擎。IO是比socket.io低一级的库。

引擎是套接字。

如果你想要更低层次的抽象,使用engine.io。如果你想要一个websocket抽象,继续使用socket.io。

引擎。如果你要在socket.io之上构建一个库/框架,那么IO会对你更有兴趣。

插座。如果您正在socket.io之上构建应用程序,那么IO对您更有兴趣。

插座。IO是建立在engine.io之上的。

插座。IO是引擎。

如果你不需要所有的socket。IO有(redis store, groups等)只使用engine.

有点晚了:-),但我要在这里提一下,为子孙后代。

除了"较低级"之外,最重要的区别之一是套接字。IO将首先从websockets开始&降级,直到找到可以工作的传输。另一方面,引擎。IO将从短轮询开始(并在旁边升级,直到它撞墙)。

为什么?

从用户的角度来看,一个不成功的WebSocket连接可以转换为至少10秒等待实时应用程序开始交换数据。这显然会损害用户体验。

目前(2013年),websockets还没有普及(例如旧的浏览器,蜂窝网络等),所以从XHR开始是明智的。

请参阅https://github.com/socketio/engine.io(目标部分)了解更多信息。

插座。IO v0.9已经过时了,而且有一些bug。IO是临时继任者。套接字。IO 1.0(即将发布)将使用Engine。IO和比v0.9好得多。

在我的测试中,IO似乎比Socket表现得更好。IO v0.9,查看比较:https://medium.com/node-js-javascript/b63bfca0539

插座。IO在连接丢失后尝试重新连接一段时间,而Engine。

插座。IO支持房间,而Engine。IO没有。如果您将有连接侦听不同的数据/通道,则需要房间(通过这些模块或您自己的实现)。

最新更新