无法发送消息问题

新手上路,请多包涵

手机h5页面,建立的长连接,设置的心跳是55s。可是我每20s,我就主动去连接,这样就保证了心跳包一直在维持这个链接。现在有个问题就是,在手机上没有任何操作,手机自动锁屏了,等个四五分钟后,在打开手机,就收不到信息了,也监测不到断开连接了。我怎么能知道我的链接是断了的状态呢,或者能知道是异常状态也行

阅读 2.5k
3 个回答

兼容性够的话,h5用visibilitychange,该事件监听页面显示状态

如果手机端不太方便 可以在服务端增加一个定时器或者触发器之类的东西。

是因为定时器被清空了吗?
如果是因为定时器被清空了,那么你需要用 visibilitychange + document.hidden 来判断一下当前页面的显示状态。如果处于显示状态去发送心跳包。
如果定时器还在,那么其实你应该会在20s发送心跳包时检测出异常。

至于你说的 websocket 连接状态这个东西,它本身就是有的。最好提供一下复现页面吧,或者你试一下我之前这个 demo 会出现这个问题嘛https://www.lilnong.top/static/html/websocket.html

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题