如何使用SocketRocket与socket.io?

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

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

那究竟是什么意思? 获取SocketRocket库与节点socket.io服务器交谈的必要条件是什么? 任何示例代码或build议非常感谢。

那么你的socket.io有它自己的协议,build立在传输协议上,比如websockets,或者长时间轮询,以及SocketRocket只是一个websocket库,不再。 Socket.io也有一些身份validation,所以无法使用它,与普通的networking套接字。 我build议你使用的只是一个只是websocket服务器,不外乎。 比如ws ,应该兼容。 还有其他的图书馆,但我相信目前正在积极发展,而且比其他图书更新颖。

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

希望我帮助。

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

它使用SocketRocket来处理websocket连接。

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

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

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

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