当前位置:  开发笔记 > 运维 > 正文

如何保持websocket连接活着?

如何解决《如何保持websocket连接活着?》经验,为你挑选了0个好方法。

我有一个Android应用程序,即时通讯是关键功能之一.为了实现IM功能,我们使用基于的推送服务器websocket.

对于我的应用程序,我有一个PushService,在这项服务中,我建立了一个websocket连接到推送服务器并接收推送消息的连接.

当应用程序在前台时(即:在用户使用应用程序时运行良好),代码效果很好,但是当应用程序不在前台时,它会在一段时间后停止接收推送消息(大约1分钟).用户关闭屏幕时出现同样的问题.

我已设置重复任务AlarmManager,检查websocket连接状态,如果它未处于连接状态,则重新尝试连接以恢复正常以接收推送消息.

这在Android M下运行良好,例如在Android 5手机上,它很少会错过推送消息.但是在Android M/Android N上,它的效果不如Android 5.x.我可以确认服务本身是否继续运行,请查看"正在运行的服务".

我注意到从Android M开始,Android引入了Doze和Standby模式,不确定它们是否相关,如果是,我该如何让应用程序继续工作?在我的手机上,微信和Skype Android应用程序运行良好,它背后的机制是什么?我知道FCM是最好的解决方案,但我不能将它用于中国的客户,所以我需要一个解决方法.

编辑:我曾建议使用前台服务,但PM不喜欢通知托盘始终显示在状态栏中,他希望保持清洁.

任何建议将被认真考虑!

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有