<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 為什么需要心跳檢測? (待定,還沒想好) * * * * * 正常的情況客戶端斷開連接會向服務端發送一個fin包,服務端收到fin包后得知客戶端連接斷開,則立刻觸發事件回調。 但是有些極端情況如客戶端掉電、網絡關閉、拔網線、路由故障等,這些情況客戶端無法發送fin包給服務端,服務端便無法知道連接已經斷開。如果客戶端與服務端定時有心跳數據傳輸,則會比較及時的發現連接斷開,觸發事件回調。 另外路由節點防火墻會關閉長時間不通訊的socket連接,導致socket長連接斷開。所以需要客戶端與服務端定時發送心跳數據保持連接不被斷開。 # 心跳檢測的原理是什么? * * * * * 服務端向客戶端(或者客戶端向服務器)發送心跳檢測,客戶端(服務端)接收到心跳數據后,可以忽略不做任何處理,也可以回應心跳檢測(向服務端(客戶端)發送一段任意數據)。這就分為兩種情況, 1、當服務端不要求客戶端必須回應心跳檢測時,假如客戶端遇到掉電等極端情況,這時服務端向客戶端發送的心跳數據在TCP層面就會發送超時,遇到這種超時情況TCP會重試多次(次數及間隔依賴操作系統的配置),多次無果后會斷開連接。這種極端情況從連接斷開到服務端檢測到可能要持續至少10分鐘才觸發事件回調。 2、當服務端要求必須回應檢測時,如果服務端在規定的時間內沒有收到客戶端的任何數據,則立刻判定客戶端已經斷開,服務端就立即斷開連接觸發事件回調。 ## 心跳包發送格式 * * * * * | 功能 | 幀頭 | 長度 | 網關地址 | 模塊地址 | 數據 | | --- | --- | --- | --- | --- | --- | | 心跳包 | 0x55 | 0x02 | 0x00000000 | 0x00000000 | 0x20 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看