国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

保持websocket長時間連接永不斷開

這篇具有很好參考價值的文章主要介紹了保持websocket長時間連接永不斷開。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、定期發(fā)送心跳包(ping/pong)
客戶端和服務(wù)器端都需要定期發(fā)送ping消息,并相應(yīng)得到pong消息,以確保連接仍然正常。如果超過一定時間沒收到pong,需要主動關(guān)閉連接。
JS客戶端代碼:

//定期發(fā)送ping
setInterval(() => {
	websocket.send('ping');
}, 30000);

Python客戶端代碼:

#定時發(fā)送ping
def heartbeat() :
    while True:
        ws.send("ping")
        time.sleep(30) #30s一次
#開啟定時任務(wù)
threading.Thread(target=heartbeat).start()

java服務(wù)器端代碼

@ServerEndpoint("/websocket")
public class WebSocketServer {
  private Session session;
  
  @OnMessage
  public void onMessage(String message, Session session) {
    this.session = session;
    if (message.equals("ping")) {
      try {
        session.getBasicRemote().sendPong(null);  // 回復(fù)pong
      } catch (IOException e) {
        e.printStackTrace();
      }
    } else {
      // 處理其他消息
    }
  } 
}

2、捕獲關(guān)閉連接事件并重連websocket
JS客戶端代碼:

//連接關(guān)閉的回調(diào)方法
websocket.onclose = function() {
	setMessageInnerHTML("WebSocket連接關(guān)閉");
	setTimeout(() => {
    	webSocket = new WebSocket('ws://url');  // 重新連接
  	}, 5000);  // 5秒后重連
}

Python客戶端代碼:

def on_close(ws):
    timer = threading.Timer(5, connect)
    timer.start()
ws.on_close = on_close
def connect():
    ws.connect("ws://url")

3、實現(xiàn)斷線重連
JS客戶端:

setInterval(() => {
  if (!navigator.onLine) {  // 網(wǎng)絡(luò)斷開
    setTimeout(() => {    
      webSocket = new WebSocket('ws://url');  // 網(wǎng)絡(luò)恢復(fù),重連   
    }, 5000);
  }  
}, 1000);  

Python客戶端:文章來源地址http://www.zghlxwxcb.cn/news/detail-601776.html

def get_network_info(): 
    return networkx.is_connected()
def reconnect():
    timer = threading.Timer(5, connect)
    timer.start()
def check_network():
    while True:
        if not get_network_info():
            reconnect()
        time.sleep(10)
threading.Thread(target=check_network).start()

到了這里,關(guān)于保持websocket長時間連接永不斷開的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • websocket 發(fā)送的消息超過默認(rèn)限制就會自動斷開連接

    websocket 發(fā)送的消息超過默認(rèn)限制就會自動斷開連接

    近整理了一波電子書籍資料,包含《Effective Java中文版 第2版》《深入JAVA虛擬機(jī)》,《重構(gòu)改善既有代碼設(shè)計》,《MySQL高性能-第3版》,《Java并發(fā)編程實戰(zhàn)》等等 獲取方式: 關(guān)注公眾號并回復(fù) 電子書 領(lǐng)取,更多內(nèi)容持續(xù)奉上 springboot集成websocket需要三步: 添加依賴 ?添加配

    2024年02月12日
    瀏覽(17)
  • SpringCloudAlibaba 應(yīng)用webSocket,解決連接成功后會立刻斷開等問題

    SpringCloudAlibaba 應(yīng)用webSocket,解決連接成功后會立刻斷開等問題

    最近公司有個大屏,需要做一個實時報警的功能,這就用到了webSocket技術(shù),這個帖子就用來記錄學(xué)習(xí)過程中的遇到的問題,如下是想要達(dá)到的效果圖 ?1.第一步肯定是先導(dǎo)入依賴 這里記錄第一個坑點,就是可能有的小伙伴會在啟動的時候報錯,這個是因為websocket和tomcat有沖突

    2024年02月11日
    瀏覽(22)
  • 小米手機(jī)鎖屏?xí)r間設(shè)置為永不休眠_(dá)手機(jī)不息屏_保持亮屏

    小米手機(jī)鎖屏?xí)r間設(shè)置為永不休眠_(dá)手機(jī)不息屏_保持亮屏

    環(huán)境:打開手機(jī)自帶的鎖屏?xí)r間設(shè)置發(fā)現(xiàn)沒有? 永不息屏的選項 原因:采用了三星OLED屏幕,所以根據(jù)OLED屏幕特性,這個是為了防止燒屏而特意設(shè)計的。非OLED機(jī)型支持設(shè)置“永不” 解決方案1:原生系統(tǒng)是支持永不鎖屏的,所以廠商為為了優(yōu)化系統(tǒng)對該設(shè)置進(jìn)行了屏蔽,利用

    2024年02月03日
    瀏覽(22)
  • Vue 如何使用WebSocket與服務(wù)器建立鏈接 持續(xù)保持通信

    瀏覽器通過JavaScript向服務(wù)器發(fā)出建立WebSocket鏈接的請求,鏈接建立后,客戶端和服務(wù)器端就可以通過TCP鏈接直接交互數(shù)據(jù)。WebSocket鏈接后可以通過 send() 方法來向服務(wù)器發(fā)送數(shù)據(jù),并通過 onnessage 事件來接受服務(wù)器返回的數(shù)據(jù)。 WebSocket - Web API 接口參考 | MDN

    2024年01月18日
    瀏覽(24)
  • Linux服務(wù)器SSH客戶端斷開后保持程序繼續(xù)運(yùn)行的方法

    Linux服務(wù)器SSH客戶端斷開后保持程序繼續(xù)運(yùn)行的方法

    在申請服務(wù)器連接到桌面后,有些時候需要跑一些運(yùn)行時間很長的程序(深度學(xué)習(xí)的訓(xùn)練程序)。在這期間如果退出斷開連接,即:關(guān)閉桌面的編輯器或網(wǎng)頁端的jupyter界面后Linux系統(tǒng)會自動關(guān)閉所有進(jìn)程,程序也會隨之終止運(yùn)行(被掛起),這是不希望看到的,因此本文將通

    2024年02月05日
    瀏覽(25)
  • python實現(xiàn)TCP數(shù)據(jù)通訊,socket 客戶端斷開依然保持監(jiān)聽,多線程。

    服務(wù)端: 客戶端: 服務(wù)端采用 try...except .. 形式,代碼如下:

    2024年02月14日
    瀏覽(22)
  • WebSocket斷開原因和心跳機(jī)制

    WebSocket斷開的原因有很多,最好在WebSocket斷開時,將錯誤打印出來。 錯誤狀態(tài)碼: WebSocket斷開時,會觸發(fā)CloseEvent, CloseEvent會在連接關(guān)閉時發(fā)送給使用 WebSockets 的客戶端. 它在 WebSocket 對象的 onclose 事件監(jiān)聽器中使用。CloseEvent的code字段表示了WebSocket斷開的原因??梢詮脑撟侄?/p>

    2024年02月04日
    瀏覽(18)
  • Vue中WebSocket鏈接中斷、心跳機(jī)制防止自動斷開

    Vue中WebSocket鏈接中斷、心跳機(jī)制防止自動斷開

    1、WebSocket鏈接中斷原因 WebSocket斷開的原因有很多,最好在WebSocket斷開時,將錯誤打印出來。 二、心跳機(jī)制防止自動斷開 WebSocket在一段時間內(nèi)沒有進(jìn)行通訊便會自讀斷開鏈接,可以每隔30秒或一分鐘向服務(wù)器發(fā)送一次通訊防止鏈接終端

    2024年02月16日
    瀏覽(20)
  • websocket鏈接斷開服務(wù)器報錯java.io.EOFException解決辦法

    首先說一下報錯原因,由于默認(rèn)60s無消息交互就會關(guān)閉長連接,所以導(dǎo)致這個報錯 解決方案其實也很簡單,既然是長時間沒有通信導(dǎo)致斷開,其實保持通信就好,可以設(shè)置心跳時間來解決。 可以前端也可以后端,附上前端代碼吧 //心跳檢測 var heartCheck = { ? ? timeout: 60000,//

    2024年02月08日
    瀏覽(20)
  • 服務(wù)器SSH連接問題:每次連接都需要多次嘗試或需長時間等待

    服務(wù)器系統(tǒng):Ubuntu 22.04 相關(guān)服務(wù): open-ssh 最近服務(wù)器進(jìn)行ssh連接往往需要多次嘗試連接才能夠成功,失敗的連接報錯如下: 或者輸入密碼后需要等待很久才能重新連接 /etc/ssh/sshd_config 為ssh服務(wù)的參數(shù),其中有一條為: 其含義如下: 10:未驗證連接數(shù)達(dá)到10開始進(jìn)行連接dr

    2024年01月21日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包