【发布时间】:2013-08-09 10:12:15
【问题描述】:
关于这个主题有几个问题,但没有一个能完全解决这个问题。
我正在使用带有 redis 存储的 Socket.IO,我正在为流量增加做准备。我的托管公司说,“你需要使用 Engine.IO 而不是 Socket.IO,因为它更有效”,所以我正忙着弄清楚这意味着什么。
Questions like this 的答案看似矛盾:
- Socket.IO is built on top of Engine.IO
- Engine.IO enhances where Socket.IO degrades
- Socket.IO 1.0 will be the first version to run on Engine.IO
所以我的看法:
- Socket.IO 0.9 降级
- Engine.IO 增强
- Socket.IO 1.0 将使用 Engine.IO
- 如果要在多个实例上运行 Engine.IO,则必须自己编写 redis 存储
但随后Engine.IO 说它是“负载均衡器友好的”,但对 redis 只字未提。它必须有某种外面的商店,对吧?但是如果它有多个传输和一个存储,那么 Socket.IO 有什么意义呢?
然后我看到 Socket.IO might be abandoned 和 high profile companies are moving 到 Primus。
如何扩展 Engine.IO?我必须自己编写存储吗?
【问题讨论】:
-
如果您使用 Engine.IO,是的,您必须编写自己的商店。我知道抱怨开源项目缺乏更新并不酷,但我觉得他们在 Socket.IO 上丢了球。像这样的问题很多,而 1.0 已经指日可待了半年多。 socket.io 上有数百个存在数月之久的未解决问题,因此它在这一点上给人以无人维护的所有外观。
-
如果你想使用engine.io 那么是的,你必须编写额外的东西。我可以想象 socket.io 面临一些适应新内核的障碍。 socket.io 是向engine.io 表示要连接的东西。它隐藏了engine.io的底层细节,灵活且用户友好。但是出于同样的原因,我会要求您不要在其上建立商店。 socket.io 1.0 是基于 engine.io 的承诺而构建的。鉴于 socket.io 1.0 的状态,任何人都可以保证 engine.io 会成功。如果 1.0 正在准备中,请等待它,因为它会比你能做的更好,如果它来了。