Objective-C 的 WebSockets 客户端(最好与 iOS 兼容)
Posted
技术标签:
【中文标题】Objective-C 的 WebSockets 客户端(最好与 iOS 兼容)【英文标题】:WebSockets client for Objective-C (preferably iOS compatible) 【发布时间】:2010-12-21 15:53:25 【问题描述】:我找到的最接近的东西是How to incorporate WebSockets into a Cocoa application,但答案只指向一个过时的库。
有人知道与 ios 4.x 兼容的 WebSockets 库吗?
我还阅读了有关 Pusherapp 的信息,而且,尽管服务可能很好,但我更喜欢使用自己的 WebSockets 服务器。
【问题讨论】:
任何新的可靠的 iOS 网络套接字客户端? 【参考方案1】:您可以查看UnitT Web Socket Client。它旨在用于使用 Objective-C 的 iOS 应用程序。它适用于 ws 和 wss。
我是作者,并已在我的一些项目中成功使用它。如果您遇到任何麻烦,请告诉我,我会尽我所能提供帮助。
【讨论】:
谢谢,我一定会去看看。因为看起来很完整,所以我就把它当作答案。 嗨乔希,你的库有问题。按照本项目教程中的所有步骤进行操作,但这是错误的。我得到了很多类似的错误:Error Domain=NSPOSIXErrorDomain Code=61 "The operation couldn’t be completed. Connection refused
。尝试了 0.9.5 和 0.9.4 版本,但仍然无法修复它,任何建议。这是我的测试项目github.com/artem888/WebSocketTest
你在运行什么服务器?我查看了您的项目,但没有看到任何 Web 套接字的代码。抱歉回复晚了,但我女儿刚出生,终于睡了一夜。
我可以在 XMPPFramework 中使用它来替换 GCDAsyncWebSocket 吗?【参考方案2】:
在 google 搜索 iOS WebSockets 时发现这篇文章,并希望提供更新的答案。
无论如何,Zimt 和 Unitt 的客户端不支持最新标准(在撰写本文时)。
(免责声明:SocketRocket 的作者)
我们刚刚发布了一个没有外部依赖的新库,完全支持RFC 6455,并且适用于iOS 4.x+。
它叫SocketRocket and can be found here
【讨论】:
有机会分享“基于委托”背后的经验/想法。有旧版本也可以使用块,但我觉得它与保留周期并没有很好地融合,一般来说只是目标 C。 “?比如说,通过博客或维基。 CoreWebSocket Vs. SocketRocket 呢?【参考方案3】:您可以使用几个类似 Cocoa 的库之一创建一个 Web 应用程序,然后使用 PhoneGap/Apache Cordova 之类的东西将其转换为本机应用程序。
Cappuccino - 使用 Objective-J 和 Cocoa 类 API 制作 webapps。
WebSockets for Cappuccino
SproutCore - 苹果的Cocoa for the web
Toth - 一个使用 WebSockets 的多用户 SproutCore 库。
对于服务器端,有很多选择。只需在 github.com 上搜索 "websockets server"。
【讨论】:
不错的链接。我会检查他们。谢谢。 ;) 无论谁投了反对票,都可以很好地评论你为什么投反对票(例如质量问题、不正确的信息、没有回答问题等)。这为未来的观众提供了关于为什么答案可能不好的信息,也让答案作者有机会清理/修复/学习并提高 SO 问题/答案的整体质量。 无用,偏离主题。 @Justicle,你可能会说它是题外话(尽管我认为替代方法是题外话,如果它们被明确标记为)。但是“无用”?问题提交者发现它们很有帮助。 @kanaka - 这无济于事,因为我也在寻找有关 iOS 上 WebSockets 的信息,而您的回答是没有什么可补充的意见。这是题外话 - 问题被标记为“iphone ios4 websockets”而不是“应用程序开发的替代方法”。【参考方案4】:考虑到新的 iOS13 TLS 限制,我为 iOS/Objective-C 和 TLS 创建了一个包。它适用于我如何使用它的 NodeJS TLS 服务器。希望对您有所帮助,请随时贡献。
https://github.com/eamonwhiter73/IOSObjCWebSockets
【讨论】:
以上是关于Objective-C 的 WebSockets 客户端(最好与 iOS 兼容)的主要内容,如果未能解决你的问题,请参考以下文章
HTML5 websockets vs PHP websockets vs node.js websockets?
Go 实现 WebSockets:1.什么是 WebSockets