登录 立即注册

首页 > 绿虎论坛 > 网页插件 (发帖)

[网页插件][更新] @提醒(1.0.4)


『回复列表(99|隐藏机器人聊天)』

80. @老虎会游泳,我应该怎么修改。现在的代码似乎是5秒重连,复制你之前帖子里的。
    // 当 WebSocket 连接出错时触发
    socket.onerror = (event) => {
        console.error("WebSocket 连接出错", event);
        // 关闭当前 WebSocket 连接
        socket.close();

        // 重新连接 WebSocket
        setTimeout(() => {
            console.log("重新连接 WebSocket");
            connectToWebSocket();
        }, 5000); // 延迟 5 秒重新连接
    };

    // 当 WebSocket 连接关闭时触发
    socket.onclose = (event) => {
        console.log("WebSocket 连接已关闭", event);
        // 重新连接 WebSocket
        setTimeout(() => {
            console.log("重新连接 WebSocket");
            connectToWebSocket();
        }, 5000); // 延迟 5 秒重新连接
    };
(/@Ta/2023-03-30 17:09//)

81. @老虎会游泳,要不直接把重连去了然后弹个窗?感觉一般如果连接失败,重连也高概率重连不上。
(/@Ta/2023-03-30 17:19//)

82. @老虎会游泳,另外似乎socket会把一些机器人的心跳返回给我。似乎没有必要。这个如果用户想获取直接主动去跟接口获取就行吧。没必要主动推送。
image.png(145.98 KB)
(/@Ta/2023-03-30 17:23//)

83.

@残缘@rkonfj,对了,我的js参考客户端有Bug,因为onerroronclose会各自触发一次,导致1个连接失败后打开2个连接,连接数指数增长。

要改成这样:

    // 当 WebSocket 连接出错时触发
    socket.onerror = (event) => {
        console.error("WebSocket 连接出错", event);
        // 关闭当前 WebSocket 连接
        socket.close();
    };

    // 当 WebSocket 连接关闭时触发
    socket.onclose = (event) => {
        console.log("WebSocket 连接已关闭", event);

        // 重新连接 WebSocket
        setTimeout(() => {
            console.log("重新连接 WebSocket");
            connectToWebSocket();
        }, 5000); // 延迟 5 秒重新连接
    };
(/@Ta/2023-03-30 17:25//)

84.

@残缘,至于机器人心跳,是 @rkonfj 想发的。我也建议他不要发给未订阅心跳的连接,但是还没有实现。

(/@Ta/2023-03-30 17:25//)

85.

@残缘,如果想保活,可以发{"action":"ping"}

socket.send('{"action":"ping"}');

会响应一个{"event":"ping","data":"pong"}

(/@Ta/2023-03-30 17:30//)

86. @老虎会游泳,好了改了。其实还有一个问题就是用户每次打开一个新的页面就会新建一个socket连接。似乎可以用油猴脚本或者Chrome的后台任务来解决,但是这样有的浏览器就不支持了。
(/@Ta/2023-03-30 17:29//)

87.

@残缘,多页面倒是没关系,目前压力不大。如果想改进那就只能用 SharedWorker 了。

(/@Ta/2023-03-30 17:31//)

88. @老虎会游泳,我不太清楚这个服务的具体实现细节。如果有两个页面,我关闭了一个,另外一个页面服务的应该不会给他发送close的消息吧?
(/@Ta/2023-03-30 17:35//)

89.

@残缘,不会。close不是一个消息,而是TCP连接断开的事件。

(/@Ta/2023-03-30 17:36//)

90.

@残缘,当socket.onerror发生时,TCP连接处于半关状态:服务器已经关闭连接,但客户端还没有。当socket.onclose发生时,TCP连接在服务器和客户端双方都彻底关闭。

(/@Ta/2023-03-30 17:38//)

91. @老虎会游泳,明白
(/@Ta/2023-03-30 17:44//)

92.

@老虎会游泳@残缘,已经实现可取消订阅事件(可取消订阅的事件有msg online offline

不需要订阅机器人上下线事件可以在 websocket 连接建立成功后发送:
{"action": "unsub", "data": ["online", "offline"]}

后续有需要这些事件再发送:
{"action": "sub", "data": ["online", "offline"]}

不清楚取消了订阅哪些事件发送:
{"action": "lsunsub"}

如果老虎更新hu60bot程序后,客户端什么也不做就和之前一样,会收到所有事件

(/@Ta/2023-03-31 14:26//)

93.

@rkonfj,建议你给websocket服务写一个手册

(/@Ta/2023-03-31 15:01//)

94.

@老虎会游泳,功能比较多的话,我来更新下 README.md

(/@Ta/2023-03-31 15:07//)

95. @老虎会游泳@rkonfj
似乎服务太不稳定。
image.png(122.21 KB)
(/@Ta/2023-03-31 16:10//)

96.

@残缘,服务器已经稳定运行 25h小时了,所以不是进程退出导致的。应该是,网络问题或者到达用户连接数上限,大概率是达用户连接数上限。看老虎怎么说

(/@Ta/2023-03-31 16:14//)

97. @无名啊,我看错了,以为是你刚回复的,可以忽略。 
(/@Ta/2023-03-31 16:31//)

98. @rkonfj,可能与连接数量有关,当我打开2-3个网页时,再刷新的快点(其实也不是很快,正常浏览)就会提示这个了。
(/@Ta/2023-03-31 16:32//)

99.

@rkonfj,如果因为连接数上限关闭连接,能不能响应一个错误信息

(/@Ta/2023-03-31 16:35//)

上一页 5/5页,共99楼

回复需要登录

11月25日 14:43 星期一

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1