新的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服务器通信?非常感谢任何示例代码或建议。
答案 0 :(得分:8)
嗯,你的socket.io有自己的协议,建立在传输协议上,如websockets,或长轮询,以及SocketRocket只是一个websocket库,不再。 Socket.io也有一些身份验证,因此使用普通的Web套接字是不可能的。我建议你使用的只是一个websocket服务器,仅此而已。例如ws,它应该兼容。还有其他图书馆,但是,我认为ws
目前正在积极开发,并且比其他图书馆更新。
你也可以使你的客户端socket.io兼容,但我认为它没有用。以下是它的规格:https://github.com/LearnBoost/socket.io-spec
希望我帮助过。
答案 1 :(得分:3)
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,您可以使用上面几行提供的链接。