javascript - Chrome/Android杀死了后台运行的websocket

标签 javascript android iphone google-chrome websocket

Android(也包括iPhone)中的Google Chrome在一段时间(在20seg-3分钟之间)之间振荡(取决于设备)后,将终止websocket连接。
当应用程序不在前台时,它也无法处理简单的计时器或间隔,例如我在底部附加的示例。

我不明白这是正常的,以更新电池寿命并保留移动设备的资源,但这很糟糕……对于任何Web开发人员来说,当用户需要一直连接到套接字而不丢失连接时,这确实是一个痛苦。只需打开whatsapp来回答消息或其他浏览器选项卡上的某些内容,然后返回到webapp并断开连接即可。例如,一个聊天室。

有解决此问题的方法吗?可以直接从chrome配置的内容,对Webapp的特殊权限,针对这种情况的某种绕过方法?
这是一个webapp,已添加到android的开始屏幕中...即使如此,chrome似乎也没有赋予它任何特定的优先级,并且会不断杀死websocket并在webapp处于后台时拒绝执行JavaScript。 (屏幕关闭或前景中的其他应用)

我希望我已经解释清楚了,我是stackoverflow的新手,而且我的英语不太好。
提前致谢!

例如,您可以在移动浏览器中执行一个简单的页面,并看到该间隔未执行,就像预期的10个秒数一样。

<script>
    setInterval(function() {
        var timeNow = new Date().toLocaleTimeString()
        document.body.innerHTML += "<div> " + timeNow + "</div>"    
    }, 10000)
</script>

最佳答案

老实说,我对websocket不太了解,但是我遇到的一个常见问题是,有时当一两个以上的人尝试连接到同一套接字时,它会吓跑。这可能是您的问题吗?对不起,如果我帮不上什么忙。我制作了一些托管流的python程序,并在同时连接两个后将其关闭。也许像聊天应用程序一样托管多个websocket?

关于javascript - Chrome/Android杀死了后台运行的websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55582103/

相关文章:

javascript - Ant Design Dropdown - 访问子菜单中的 props 值 [ React ]

javascript - knockout.js 如何在 ko.computed 写入中取消 confirm() 后设置所选选项

javascript - 如何添加带有 "document.createTextNode"按钮的一行

安卓:xml 还是 json?

android - 区分 GCM 和 C2DM id

ios - 如何将 .plist 文件中的数据结构读入 NSArray

java - 使用 Google App Engine 的新手

java - 通用池 "More Items Recycled than obtained"问题

javascript - 如何在 iOS 9.3+ 上从网页打开 Safari 的设置

iphone - iOS 在 Photos 中创建自定义相册(iOS 5 下的 addAssetsGroupAlbumWithName?)