如何在socket.io中使用SocketRocket?

时间:2012-02-15 22:35:12

标签: ios node.js websocket socket.io socketrocket

新的iOS websocket库SocketRocket看起来非常棒,聊天示例项目真的很棒。示例聊天服务器是用Python编写的,我不知道。我对node.js上的socket.io稍微熟悉,并且更喜欢尝试javascript。我尝试将SocketRocket TestChat模拟器应用程序连接到node.js(6.10)socket.io(0.8.7),但连接被拒绝。 (另外,我也不是节点专家,所以这可能是个愚蠢的问题。)

在最近对SO question的回答中,mikelikespie对操作说:“我建议更新你的堆栈以​​使用我们刚刚发布的iOS WebSocket库。”

这究竟是什么意思?有什么必要让SocketRocket库与节点socket.io服务器通信?非常感谢任何示例代码或建议。

3 个答案:

答案 0 :(得分:8)

嗯,你的socket.io有自己的协议,建立在传输协议上,如websockets,或长轮询,以及SocketRocket只是一个websocket库,不再。 Socket.io也有一些身份验证,因此使用普通的Web套接字是不可能的。我建议你使用的只是一个websocket服务器,仅此而已。例如ws,它应该兼容。还有其他图书馆,但是,我认为ws目前正在积极开发,并且比其他图书馆更新。

你也可以使你的客户端socket.io兼容,但我认为它没有用。以下是它的规格:https://github.com/LearnBoost/socket.io-spec

希望我帮助过。

答案 1 :(得分:3)

GitHub上的

socket.IO-objc看起来是一个成熟的Socket.IO / Objective C Library

它使用SocketRocket来处理websocket连接。

这将允许您拥有一个支持旧浏览器的套接字服务器(降级为长轮询等),并且仍然可以通过SocketRocket访问您的iOS应用程序。

答案 2 :(得分:2)

我刚刚使用this library在Node.JS服务器和iOS应用程序之间实现了活动套接字连接。我用过这个,因为Socket.IO-ObjC上的README说

  

此库的当前版本尚不支持socket.io v1.0。   因此,如果您想使用socket.io-objc,请回到v0.9.x。

但我总是希望使用最新版本。因此,如果您想使用Socket.IO v1.0,您可以使用上面几行提供的链接。