【问题标题】:Web app reconnect (socket.io) when phone wakes from sleep当手机从睡眠中唤醒时,Web 应用程序重新连接(socket.io)
【发布时间】:2023-03-30 17:30:01
【问题描述】:

我遇到了 socket.io 的问题...

我正在构建一个树莓派媒体播放器网络应用程序,使用 node.js 和 socket.io...我正在使用手机的浏览器作为遥控器...一切正常,唯一的问题是,如果我不使用控制器,手机睡着了,插座断开了。当我再次拨通电话时,重新连接到服务器需要随机的秒数(超过 30 秒)。我需要立即重新连接!

我想要重新连接到服务器的部分客户端代码是:

$('body').on('click',function(){
        if(socket.connected === false || socket.connected === undefined){
            socket = io.connect('http://' + utilities.localIPAdress + ':3000', {forceNew: true}); 
            console.log('Reconnecting to server');
            alert('Reconnecting to server');
        }
    });

我只想在点击手机屏幕时检查连接,如果套接字断开连接则重新连接。事实上,我想创建新连接,因为我也尝试过使用 socket.socket.reconnect();它根本不起作用。

有什么建议吗?

【问题讨论】:

    标签: android node.js mobile socket.io webbrowser-control


    【解决方案1】:

    我是 socket.io 的新手,但这正是我用来解决几乎相同问题的工具(raspberrypi-nodejs-socket.io-sleeping 移动浏览器)

    试试这个:

    var socket = io('http://' + utilities.localIPAdress + ':3000',
    {'reconnection': true,'reconnectionDelay': 500,'maxReconnectionAttempts':Infinity}
    );
    

    这样您就不必手动重新连接身体点击,它会自动尝试无限期地重新连接。我正在使用 500 毫秒的延迟,不确定它如何影响性能,但可以尝试一下,看看会发生什么。

    您可以在每个连接状态下执行如下操作:

    socket.on('connect', function() {
        console.log('connected');
    });
    
    socket.on('reconnecting', function() {
        console.log('reconnecting'); 
    });
    
    socket.on('reconnect_error', function(obj) {
        console.log('reconnection error'); 
    });     
    
    socket.on('reconnect_failed', function() {
        console.log('reconnection failed');
    });     
    
    socket.on('disconnect', function() {
        console.log('disconnected');
    });
    

    查看 socket.io 的网站了解更多信息: http://socket.io/docs/client-api/#manager(url:string,-opts:object)

    【讨论】:

      【解决方案2】:

      我也有同样的问题。

      我发现socket.io 不知道它已断开连接。 disconnect 回调不起作用。而socket.connected 仍然是true。

      我必须先断开socket,然后再连接。

      我也不知道如何让应用自动重新连接。
      我使用点击按钮自行重新连接。

      Reference

      【讨论】:

      猜你喜欢
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 2013-04-22
      • 2018-12-04
      相关资源
      最近更新 更多