【问题标题】:socket.io websocket fallbackssocket.io websocket 后备
【发布时间】:2011-09-02 17:01:31
【问题描述】:

我想将 dotcloud 与 node.js + socket.io 一起用于实时应用程序。

但它们不支持 websocket。

单纯依靠回退是否会导致明显的带宽或性能下降?

使用我自己的服务器值得吗? Linode 或 aws 之类的。

谢谢。

【问题讨论】:

  • Websockets 确实更快。仅在专业环境中才值得(即仅对玩具/原型使用后备)

标签: node.js websocket socket.io


【解决方案1】:

我正在实现一个完全依赖于 websocket 的即时消息系统。由于网络发展得非常快,并且 websocket 是 web 标准,我决定为任何默认不支持它的浏览器(Firefox、Opera)使用 flash websocket 后备。以下是您可能想知道的:

  1. 我使用 websocket。我使用pure websocket server。我不使用任何其他协议。我不使用socket.io。我必须说,如果你决定只使用 websocket,你将不会从 socket.io lib 中受益,甚至是开发时间。由于支持多个传输层,它只会给您的服务器增加不必要的开销。

  2. 在客户端,我使用 websocket + flash websocket fallback,它使用 flash 套接字实现 websocket 规范,我想说没有明显的区别。您唯一应该知道的是由于“同源策略”,您可能需要自己提供 Flash 套接字策略请求(默认在端口 843 上运行)以允许 Flash 套接字连接。

  3. 我们目前正在使用私人服务器,因为我们有专门的系统管理员。但是,如果您可以专注于做您打算做的事情,而不是不想要的事情,那就更好了。哦,有时,如果您完全控制自己的服务器会更好:-)。

希望对你有帮助。

【讨论】:

  • 谢谢,这很有帮助。很抱歉回复晚了,但是您是否遇到了 socket.io 的任何问题导致您不使用它?我问是因为 socket.io 似乎是 *everyone 使用的,我没有考虑不使用它。但我正在考虑效仿你的例子。
  • 一开始我也考虑过socket.io。但是,一旦在一侧(服务器或客户端)使用 socket.io,您必须在两侧都坚持使用它。因此,您的“websocket”应用程序将与任何其他标准实现不兼容。这阻止了我走得更远。我认为 socket.io 有利于修复过时的互联网技术:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2023-03-18
  • 2015-06-18
  • 1970-01-01
相关资源
最近更新 更多