Websocket 服务器和移动客户端
Posted
技术标签:
【中文标题】Websocket 服务器和移动客户端【英文标题】:Websocket server and Mobile clients 【发布时间】:2014-12-17 16:55:21 【问题描述】:我有一个基于 Tomcat 的服务器,它充当我基于 Web 的 JS 应用程序的 Websocket 端点(使用 javax.websocket)。我通过网络套接字提供基于 json 的数据(从我的数据库中查询)。我没有使用 websockets 来提供 html/JS 页面。
现在我们正在为我们的 JS 网络应用构建一个原生移动应用。 android 和 ios 上的 Websocket 似乎没有很好的原生支持。
我想保持服务器代码库对 JS 客户端和移动客户端通用。
您对这种情况有何建议?为移动客户端编写不同的服务器?
我发现了这个http://www.elabs.se/blog/66-using-websockets-in-native-ios-and-android-apps。他们建议 SocketRocket 用于 ios,https://github.com/TooTallNate/Java-WebSocket 用于 Android。
我从未听说过这些人/公司。不确定他们的前身以及他们的应用程序是否没有错误。
欢迎提出任何建议。
【问题讨论】:
【参考方案1】:我不确定这是否是您正在寻找的答案,但我尝试过一次,并决定使用使用 websocket 的网页。每个应用程序都会显示一个访问页面的 web 视图。所有最新的 iOS SDK 版本都支持此功能,但只有较新的 (4.4+) Android 支持。
如果你不想使用 webviews,我推荐Tavendo Autobahn for Android。我有一个问题,我的服务器的 websocket 会一直断开连接。我必须在应用程序上每隔几秒执行一次重新连接例程。
希望对你有帮助:)
【讨论】:
谢谢卢克。我在问题中忘记提到的一点是,我没有使用 websockets 来提供页面,而是以 json 对象的形式从我的数据库中提供数据。无论如何,我会看看 Travendo Autobahn。您的断开连接是由于蜂窝网络问题还是与您的代码或高速公路代码有关? 问题出在服务器上。由于某种原因,我们的服务器会关闭连接。我们可以在 Android 和 iOS 应用上看到这种情况【参考方案2】:我在 android 上将这个库用于 websockets https://github.com/codebutler/android-websockets
适用于 Spring WebSockets。
不好意思回答乱七八糟,我很着急,有问题可以写在cmets
【讨论】:
以上是关于Websocket 服务器和移动客户端的主要内容,如果未能解决你的问题,请参考以下文章