如何将socketRocket与socket.io一起使用?

问题描述:

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

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

那是什么意思?获取SocketRocket库与节点socket.io服务器进行通信需要什么?任何示例代码或建议非常感谢。

那么你的socket.io有自己的协议构建在传输协议上,如websockets或者长轮询,以及SocketRocket只是一个websocket库,没有更多。 Socket.io也有一些身份验证,所以无法使用它,只能使用普通的网络套接字。我建议你使用的仅仅是一个websocket服务器,不过是这样。如ws,应该兼容。还有其他的图书馆,但我认为ws目前正在积极开发,并且比其他图书更新。

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

希望我帮助。

+0

ws图书馆确实看起来像要走的路。我无法用ws获得工作实现,但这是我的javascript技能的限制。我将此标记为已回答,因为它有意义,并且没有其他答案。谢谢。 – seeker12 2012-03-02 17:43:59

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

它使用SocketRocket处理WebSocket连接。

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

+2

该链接是针对早期版本的Socket.IO的库。对于一个与socket.io v 0.9+和1.0一起工作的项目,试试这个:[socket.IO-objc](https://github.com/francoisp/socket.IO-objc) – Suz 2015-02-04 19:32:09

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

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

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