8

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

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

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

4

3 回答 3

9

好吧,socket.io 有自己的协议,它建立在传输协议(例如 websockets 或长轮询)上,而 SocketRocket 只是一个 websocket 库,仅此而已。Socket.io 也有一些身份验证,因此无法通过普通的 Web 套接字使用它。我建议您使用的只是一个 websocket 服务器,仅此而已。比如ws,应该兼容。还有其他库,但ws我相信目前正在积极开发,并且比其他库更新。

您也可以使您的客户端 socket.io 兼容,但我认为它是不必要的。这是它的规格:https ://github.com/LearnBoost/socket.io-spec

希望我有所帮助。

于 2012-02-16T17:45:52.080 回答
3

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

它使用 SocketRocket 来处理 websocket 连接。

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

于 2013-05-02T12:33:21.807 回答
2

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

这个库的当前版本还不支持 socket.io v1.0。所以如果你想使用socket.io-objc,请回退到v0.9.x。

但我总是想为所有事情使用最新版本。所以如果你想使用 Socket.IO v1.0,你可以使用上面几行提供的链接上的那个。

于 2014-09-03T17:40:02.410 回答