第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當(dāng) google chrome 中存在大量 websocket 連接時,socket io 會中斷

當(dāng) google chrome 中存在大量 websocket 連接時,socket io 會中斷

動漫人物 2023-08-05 10:16:54
我在 google chrome 瀏覽器中創(chuàng)建了 60 個到 socket.io 服務(wù)器的客戶端連接。服務(wù)器在特定時間將屏幕截圖發(fā)送給客戶端。一些作為 socket.io 子協(xié)議的 websocket 連接被破壞,因此大約 1-4 個 chrome 選項卡的連接被關(guān)閉。我嘗試增加 pingTimeout,它僅有助于克服 tcp 傳輸關(guān)閉問題(我也有這個問題),但此解決方案無助于解決發(fā)送屏幕截圖問題。在我看來,谷歌瀏覽器一次不能支持大約 50-60 個選項卡,因為 CPU 和 RAM 由于向 60 個客戶端發(fā)送屏幕截圖而增加到最大值(每個客戶端有 2 個 websocket 連接:第一個用于簡單消息,第一個用于簡單消息)第二個用于圖形(發(fā)送屏幕截圖)),因此 chrome 會關(guān)閉一些 websocket 連接。服務(wù)器套接字 io 的部分代碼如下:// serverthis.http = this._createHttpServer(sslCert, sslKey);this.io = socketIo(this.http, {    'pingTimeout': 180000,    'pingInterval': 60000});const jwtAuth = socketioJwt.authorize({     secret: jwtSecret,     timeout: 15000});this.io.on('connection', (socket) => {    socket.once('authenticate', (data) => {        socket.rawAuthData = data;    });    jwtAuth(socket);});// clientvar connOptions = {    "reconnectionAttempts": 2};var socket = io(options.url, connOptions);socket.on('connect', function() {    if (options.token) {        socket.emit('authenticate', {token: options['token'], tag : tag});        socket.on('authenticated', function() {            ctx.printLog('Authorized. Waiting for handshake');            socket.once('tunnel-handshake', function() {                ctx.printLog('handshake received! connection is ready');                processConnected();            });        }).on('unauthorized', function(msg) {            ctx.printLog("Authorization failed: " + JSON.stringify(msg.data));            eventHandlers.onerror({ code: ctx.ERROR_CODE.INVALID_TOKEN});        });    } else {        processConnected();    }});socket.on('reconnect_failed', eventHandlers.onerror.bind(this, {code: 1, reason: "Reconnection failed"}));socket.on('disconnect', eventHandlers.onclose);socket.on('error', eventHandlers.onerror);是否存在任何想法,原因可能是什么?這個問題有解決辦法嗎?是 google chrome 問題還是 socket.io 選項問題?謝謝
查看完整描述

1 回答

?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗 獲得超14個贊

將socket.io更改為3.0版本無法解決該問題。socket.io v3.0engine.io v4.0。

我們收到了大量來自用戶的報告,這些用戶由于 ping 超時而遇到隨機(jī)斷開連接的情況,即使他們的互聯(lián)網(wǎng)連接已接通且遠(yuǎn)程服務(wù)器可訪問。應(yīng)該指出的是,在這種情況下,客戶端會立即重新連接,但這仍然是一個煩人的問題。

經(jīng)過分析,似乎是客戶端定時器延遲導(dǎo)致的。這些計時器用于乒乓機(jī)制,有助于確保服務(wù)器和客戶端之間的連接仍然健康??蛻舳搜舆t意味著客戶端發(fā)送 ping 數(shù)據(jù)包太晚,服務(wù)器認(rèn)為連接已關(guān)閉。

這就是為什么服務(wù)器現(xiàn)在將發(fā)送 ping 數(shù)據(jù)包,而客戶端將用 pong 數(shù)據(jù)包進(jìn)行響應(yīng)。

但將 pingTimeout 和 pingInterval 值增加到 1073741823 可以解決該問題。


查看完整回答
反對 回復(fù) 2023-08-05
  • 1 回答
  • 0 關(guān)注
  • 753 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號