【发布时间】:2012-02-23 08:35:17
【问题描述】:
我一直在使用来自http://github.com/ncr/node.ws.js 的node.js WebSocket 实现,但它只与Safari 5.0.1 实现的hixie-76 版本的协议兼容。
我还需要使用 Chrome,它现在根据 RFC 6455 实现官方协议。
有谁知道node.js 的服务器端实现,它与hixie-76 和hybi-17(又名“版本13”)兼容?
请不推荐 Socket.IO - 它不是真正的 WebSockets!
我知道的不起作用的实现(在撰写本文时)是:
【问题讨论】:
-
我不知道有任何 node.js 服务器同时支持 Hixie 和 HyBi/IETF 6455,但作为参考,以下是仅支持新版本的服务器:github.com/Worlize/WebSocket-Node、github.com/einaros/ws I我也对支持两者的解决方案感兴趣,这样我就可以将它用于我的 Node.js 实现 websockify 所以希望其他人知道答案。
-
感谢第二个 - 它不在我的清单上(但现在是)
-
什么意思 Socket.IO 不是真正的 WebSockets?当然可以,但是如果 WebSocket 通信是不可能的,它会做一些其他的事情。
-
@freakish 我的意思是,除非您还在客户端中实现了 Socket.IO 协议层,否则您不能在客户端中使用本机 WebSocket 与 Socket.IO 服务器通信。 Socket.IO 位于 WebSockets之上(或者其他东西,如果它们不可用的话)。
-
@Alnitak 好吧,Socket.IO 不是协议,最好将其称为 WebSocket 包装器(因为我相信我们确实同意所有通信都通过 WebSockets)。但是你是对的,虽然我不明白为什么这很糟糕?为什么你不能使用它? Socket.IO 绝对是最成熟、最强大的 WebSocket/Node.js 库。