适用于 Android 和 iOS 应用程序的 WebSockets

Posted

技术标签:

【中文标题】适用于 Android 和 iOS 应用程序的 WebSockets【英文标题】:WebSockets for Android AND iOS Apps 【发布时间】:2012-09-04 09:26:16 【问题描述】:

是否有一个项目为 androidios 提供通过 WebSocket 进行通信的库?我知道 jWebSocket,但它几乎已经死了,并且没有为 iOS 提供库。我知道 Autobahn,但它也只支持 Android。我也知道 SocketRocket,但这仅适用于 iOS。有什么东西可以同时支持,或者有两种 100% 兼容 WebSocket 的解决方案?

谢谢!

【问题讨论】:

不支持iOS(objC)和Android(java) 至少有兼容的东西吗? ios和android之间没有任何兼容性。那是两种不同的语言 我不是指 iOS 和 Android 的兼容性,我是指 WebSocket 实现的兼容性,例如如果我在 android 上使用一个框架实现消息传递服务,它是否能够与在 iOS 上使用不同框架开发的服务进行通信? 如果你开发它,是的。如果您使用所用机制的标准实现,则没有理由不这样做。 【参考方案1】:

iOS 使用 ObjectiveC 和 Android Java,因此不可能有一个库可以为两个平台的本地语言构建相同的未经修改的用户源代码。你可以(原则上)使用 C 来实现它。当然还有 javascript

除了有线协议 AutobahnAndroid 和 SocketRocket 应该是绝对兼容的,因为两者都使用 AutobahnTestsuite 来测试协议的合规性。

以上是纯WebSocket。如果您想使用更高级别的功能,即高速公路,例如 WAMP 提供的发布和订阅和 RPC 消息传递模式,我们计划有一个 iOS 版本的高速公路,在上面添加这些.. 套接字火箭。无需在 iOS 上重新开发成熟、强大的 WebSocket 实现。

免责声明:我是 Autobahn/WAMP 的创建者。

【讨论】:

是的,我知道区别:) 我想做的是开发 2 个应用程序,一个用于 Android,一个用于 iOS,并让它们都通过 WebSockets 进行通信。现在,我不想重新发明***并自己编写所有内容 - 这就是为什么我正在寻找一些为 iOS 和 Android 提供库的框架。如果我理解正确的话,Autobahn+SocketRocket+你未来的插件会提供这个(包括 RPC 和 pub/sub 机制)? 带有“提供这个”的意思是它们是兼容的 在纯 WebSocket 级别上,AutobahnAndroid 和 SocketRocket 应该像今天一样 100% 兼容(有线协议)。对于 WAMP(= PubSub + RPC),是的,我们计划拥有 AutobahnIOS,然后两者(以及今天已经存在的 AutobahnJS 和 AutobahnPython)应该一起工作。不过我不能给你一个时间表.. 更新:有一个在 SocketRocket 之上为 iOS 实现 WAMP 的新项目:github.com/mogui/MDWamp 你好@oberstet 你推出了 iOS 版本的 Autobahn 了吗?

以上是关于适用于 Android 和 iOS 应用程序的 WebSockets的主要内容,如果未能解决你的问题,请参考以下文章

google 的 Map SDK 计费如何适用于 Android 和 iOS 应用程序?

适用于 Android 和 iOS 的不同软件包版本

适用于 iOS/Android/Windows 8 的混合应用程序

适用于 Android 和 iOS 的具有相互证书的消息安全性

适用于 Android 和 iOS 应用程序的 Firebase

适用于 iOS 和 Android 的随机数生成器