engine.io和socket.io有什么不同之处?

22

LearnBoost似乎有一个名为engine.io的新项目,理论上它与socket.io相似。1)在什么情况下应该使用其中之一?2)对于需要在node.js上基于HTML5 sockets进行通信的新项目,我们应该使用engine.io而不是socket.io吗?


7
重复问题?https://dev59.com/tWoy5IYBdhLWcg3wcNvh翻译:这个问题是否重复?https://dev59.com/tWoy5IYBdhLWcg3wcNvh - DashK
2个回答

20

来自https://github.com/LearnBoost/engine.io

Engine的主要目标是确保最可靠的实时通信。与先前的socket.io核心不同,它总是先建立长轮询连接,然后尝试升级到在侧面进行了“测试”的更好的传输方式。

在socket.io项目的生命周期内,我们发现依赖HTML5 WebSocket或Flash Socket作为首选连接机制存在无数缺点。

两者都显然是建立双向通信的正确方式,其中HTML5 WebSocket是未来的发展方向。但是,为了满足大多数业务需求,替代传统的HTTP 1.1机制同样可以提供相同的解决方案。


引擎是一个较低级别的库。如果您需要多路复用或重新连接,请使用 Socket.IO,而不是 Engine。 - Julian

12

engine.io是socket.io的新核心,因此除非你想要其他API,否则请使用socket.io :-) 根据这两个模块的作者,engine将被整合到socket.io 1.0中: http://groups.google.com/group/socket_io/browse_thread/thread/6e759a508b231b4

"接下来是什么?

1.0版本即将推出,其中包括我们的下一代实时核心Engine.IO。 0.9分支只会接收维护更新,以确保最大稳定性。"


7
在其当前状态下,我会说0.9几乎无法使用,对于太多不同的客户端情况都无法胜任。 1.0版本已经“就在拐角处”很长一段时间了。我认为是时候放弃并使用engine.io了。 - Josh Mc
至少它似乎仍在开发中,虽然曾经被放弃过。 - Daniel West

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接