engine.io 与 socket.io 有何不同?
Posted
技术标签:
【中文标题】engine.io 与 socket.io 有何不同?【英文标题】:How is engine.io different from socket.io? 【发布时间】:2012-03-25 12:57:38 【问题描述】:LearnBoost 似乎有一个名为engine.io 的新项目,理论上它似乎类似于socket.io。 1)在什么情况下您会使用其中一种与另一种? 2) 对于需要通过 node.js 进行基于 html5 套接字的通信的新项目,我们应该使用 engine.io 而不是 socket.io?
【问题讨论】:
重复? ***.com/questions/8542502/… 【参考方案1】:来自https://github.com/LearnBoost/engine.io
Engine 的主要目标是确保最可靠的实时通信。与之前的 socket.io 内核不同,它总是首先建立一个长轮询连接,然后尝试升级到更好的传输方式,并在侧面进行“测试”。
在 socket.io 项目的生命周期中,我们发现了依赖 HTML5 WebSocket 或 Flash Socket 作为第一个连接机制的无数缺点。
两者显然都是建立双向通信的正确方式,HTML5 WebSocket 是未来的方式。但是,为了满足大多数业务需求,替代的传统 HTTP 1.1 机制与提供相同的解决方案一样好。
【讨论】:
Engine 是一个较低级别的库。如果您需要多路复用或重新连接,请使用 Socket.IO 而不是 Engine【参考方案2】:engine.io 是 socket.io 的新核心,因此请使用 socket.io,除非您需要其他 API :-) 根据这两个模块的作者的说法,引擎将被集成到 socket.io 1.0 中: http://groups.google.com/group/socket_io/browse_thread/thread/6e759a508b231b4
“接下来是什么
1.0 指日可待,它具有我们的下一代实时功能 核心,Engine.IO。 0.9 分支将只接收维护更新,以确保最大 稳定。 "
【讨论】:
我会说 0.9 在其当前状态下几乎可以使用,它只是不适用于许多不同的客户情况。很长一段时间以来,1.0 已经“指日可待”。是时候放弃了,只使用我认为的 engine.io。 至少它似乎还在开发中,以为它已经被放弃了。以上是关于engine.io 与 socket.io 有何不同?的主要内容,如果未能解决你的问题,请参考以下文章