pk发型不乱
pk发型不乱
  • 发布:2018-10-08 13:24
  • 更新:2020-09-21 12:09
  • 阅读:12307

用websocket息屏后几分钟断开连接的问题

分类:HBuilder

websocket怎么解决锁屏后(或者休眠后)几分钟(很可能受省电模式的影响)老是断开又连接的问题?
程序还是在运行着的。但是从服务器上看,每隔几分钟(间隔不一定)就会断开,断开个N秒后又连接上了。
有没有大侠遇见过?求解决方案

2018-10-08 13:24 负责人:无 分享
已邀请:
pk发型不乱

pk发型不乱 (作者)

不好,要沉

gj

gj

请问你那问题解决了吗 我也需要类似情况

2***@qq.com

2***@qq.com

重连就可以的

  • gj

    我设置了重连 但是还是不行 在4点几的手机上没有出现连接中断的情况 但是在7.0上就是不行

    2018-11-05 09:36

  • 2***@qq.com

    回复 gj:uni.connectSocket 你是通过重新连接的吗

    2018-11-05 11:56

pk发型不乱

pk发型不乱 (作者)

不行。有重连代码,但是根本不连。现在又有一种情况,就是,息屏几分钟后,断开,然后过几秒,又连上了。又过几分钟,又断。一直这样。

我发现,这个问题,很可能和socket.io有关。不用任何框架,用纯websocket,可以解决。我目前客户端和服务器端,都改成自己写的了。没用node,也没用socket.io

  • 回梦無痕

    socket.io一开始出来时候很大一部分原因是为了解决网页端双向通讯的兼容问题,因为当时有相当一部分的浏览器不兼容websocket,所以socket.io在封装时候加入了轮询、flash等好几个兼容方法,但是现在浏览器基本都支持websocket了,所以socket.io除了使用方便之外也没什么用了,一般如果需求不是很特殊,都自己写websocket比较好,也不容易出现意料之外的错误,而且出问题也容易排除。

    2018-11-08 09:26

  • pk发型不乱 (作者)

    回复 回梦無痕:谢谢,现在放弃它了

    2019-01-11 08:38

j***@qeebu.cn

j***@qeebu.cn

你好 请问在uni-app项目中怎么使用纯websocket达到不断开效果

  • 邱水仙

    你的服务端肯定得设置一个心跳检测掉线时限,一般也就是两分钟左右,然后客户端每隔一会就用定时器send一个随机数据,服务端就不会主动踢下线了,客服端除了定时发送心跳数据以外,在close里加一个重连,基本不可能掉线。

    但是hb里的ws其实挺鸡肋的,安卓端还好,只要应用不被杀掉,基本不会掉,ios端只要app后台运行就挂了,ios限制了网页无法后台运行,所以,HB如果不出原生后台版的ws,这个功能就需要用可靠的消息推送来辅助

    2019-10-08 16:15

  • DCloud_heavensoft

    回复 邱水仙: 和网页没有关系,uni-app的ws本来就运行在独立的jscore下面

    2019-10-08 16:34

  • DCloud_heavensoft

    除非你是非自定义组件。如果真的是非自定义组件,赶紧升级吧

    2019-10-08 16:34

  • j***@qeebu.cn

    回复 邱水仙: 但是我怎么觉得 是js代码被干掉了,我加了个定时器 每隔10秒发起一次,锁屏后几分钟后都断开了,点亮屏幕后又继续每隔10秒发起链接,这有什么解决的方法吗

    2019-10-08 17:51

  • 邱水仙

    回复 j***@qeebu.cn: 没有,微信都没解决后台运行跟息屏下接收推送的问题,何况我们呢,你看ios版微信,它在息屏下采用的是消息推送到屏幕,进入微信后再重新接收消息,所以,我也是这样处理的,只是我们的消息推送偶尔被个推延迟,所以只能故意弱化了即时通讯这一块的功能

    2019-10-08 18:07

j***@qeebu.cn

j***@qeebu.cn

但是我这边问了后台 他说没有这个检测,我大概是锁屏或者切到后台 十几秒就断开了链接

4***@qq.com

4***@qq.com - 11111111111111111

哎 无解 !!!!!!!!!!!!

pk发型不乱

pk发型不乱 (作者)

这是手机系统的机制(节电啊什么的)。代码无法解决(原生代码禁止Android系统进入休眠??没深入研究安卓,略懂一点点)。我们有个定制手机,我问了开发厂商了,他说除了有名气的即时通讯产品例如QQ微信,其他的一律屏蔽。连JS定时器都不运行。包括安卓原生的程序,都解决不了。息屏时间一长,time_tick广播都收不到。有时候延时收到。广播收不到,记得是安卓系统自身的机制(应该是省电机制),理论上是每分钟都会有广播,但并不是。

n***@qq.com

n***@qq.com

uniapp 用的官方的工具 socket.js 也是熄屏之后断开就再也不重连了

有问

有问 - 生活,趣与失。

好像没办法,JS音乐播放器都不行,熄屏会停止播放。

该问题目前已经被锁定, 无法添加新回复