我正在开发一个非市场应用程序,它在 20-30 个 android 设备上运行(目标特定于具有 android 蜂窝 / ICS OS 的平板电脑)通过本地 WIFI 网络保持连接 1-2 小时,并且需要交换数据(表示命令的简单对象)。
大多数时候,一个特定的平板电脑的行为就像发送命令的服务器,而其他设备就像接收命令的客户端,但“客户端”有时也会向“服务器”发送命令。
作为这种通信需求的解决方案 - 我使用了一段时间的开源
库,它封装了 TCP 客户端/服务器协议,称为 - Kryonet。我发现它非常易于使用,并且基本上可以完成工作,尽管它有时“不稳定” - 会产生很多断开连接。我无法承受这种断开连接,它破坏了整个流程和用例,导致客户端丢失命令。
我正在做一些恢复逻辑,重新连接客户端并向他们发送他们错过的内容,但这对于用例来说还不够好。
最近我听说了多播广播协议,甚至发现了一个开源库调用 - JGroups,它以最佳方式实现了该协议,并公开了简单易用的接口。仍然没有尝试过,但是从知道的人那里得到了建议,说对于我的目的来说 TCP 客户端/服务器应该更好。
- 我应该使用什么最佳方法来实现我描述的行为?(不一定是我建议的两个之一)
TIA