WebSocket在几个时间间隔之间保持断开连接

Nar*_*n S 1 .net android websocket

我们正在使用网络套接字在服务器和android应用之间进行实时通信。但是这里的主要问题是Web套接字在几个时间间隔内保持断开连接,并且我们无法在两侧设置套接字超时。关于这个主题有多少问题要问,但结果对我们没有帮助。

服务器:对于服务器,我们使用.net,该示例取自https://github.com/paulbatum/WebSocket-Samples,根据该示例,我们获取了AspNetChat文件夹并从该文件夹开发了套接字服务器。

Android客户端:该示例取自java-websocket-1.3.0,并且android中的代码以以下方式编写:如果套接字断开连接,它将自动重新连接。

我们面临的主要问题是经过一定时间间隔后说,大约30分钟后,服务器和客户端之间的Websocket连接无法正常工作。即使它是否断开连接,我们也不能说,但是当从android发送消息时,日志显示它已连接到服务器,并且服务器在onMessage函数中未收到消息。

如果有解决方案,这将更有帮助,如果还有其他替代协议,我们也可以进行检查。

提前致谢

Nar*_*n S 5

经过长时间的研究,我们发现服务器端的webSocket在某个时间间隔(例如10分钟的空闲时间)上会产生错误,并且在此空闲时间段,onError()方法被onClose()方法调用。在此过程之后,服务器没有完全关闭套接字,而是仅从其内存中删除了套接字。为了解决这个问题,我们制作了一个保持活动状态的消息,即使有错误产生,应用程序和服务器都知道并且套接字已重新连接,即使有任何错误,它也会使用此消息发送并每分钟进行确认。

结果:添加一个保持活动的方法解决了我们的问题。