最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang基于websocket通信tcp keepalive研究記錄

 更新時間:2022年06月01日 17:31:20   作者:若-飛  
這篇文章主要為大家介紹了golang基于websocket通信tcp keepalive研究記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

為什么有tcp Keepalive?

服務器和客戶端建立tcp連接以后,客戶端/服務器如何知道對方是否掛掉了? 

這時候TCP協(xié)議提出一個辦法,當客戶端端等待超過一定時間后自動給服務端發(fā)送一個空的報文,如果對方回復了這個報文證明連接還存活著,如果對方沒有報文返回且進行了多次嘗試都是一樣,那么就認為連接已經丟失,客戶端就沒必要繼續(xù)保持連接了。如果沒有這種機制就會有很多空閑的連接占用著系統(tǒng)資源。

KeepAlive并不是TCP協(xié)議規(guī)范的一部分,但在幾乎所有的TCP/IP協(xié)議棧(不管是Linux還是Windows)中,都實現了KeepAlive功能。

 RFC1122#TCP Keep-Alives

tcp Keepalive是否默認開啟?

KeepAlive默認情況下是關閉的,可以被上層應用開啟和關閉

如何設置tcp keepalive?

在Linux內核設置

KeepAlive默認不是開啟的,如果想使用KeepAlive,需要在你的應用中設置SO_KEEPALIVE才可以生效。

查看當前的配置:

cat /proc/sys/net/ipv4/tcp_keepalive_time
cat /proc/sys/net/ipv4/tcp_keepalive_intvl
cat /proc/sys/net/ipv4/tcp_keepalive_probes

在Linux中我們可以通過修改 /etc/sysctl.conf 的全局配置:

net.ipv4.tcp_keepalive_time=7200
net.ipv4.tcp_keepalive_intvl=75
net.ipv4.tcp_keepalive_probes=9

添加上面的配置后輸入 sysctl -p 使其生效,你可以使用 sysctl -a | grep keepalive 命令來查看當前的默認配置

golang websocket 客戶端默認怎么處理tcp keepalive?

websocket客戶端默認是開啟tcp keepalive的

客戶端調用的是net/dial的方法DialContext:

決定是否開啟keepalive,取決于dial的keepalive的值,>>0就開啟

把客戶端的代碼改造以后,就可以決定是否主動開啟了:

golang websocket 服務器默認怎么處理tcp keepalive?

websocket服務器默認是開啟tcp keepalive的

客戶端調用的是net/tcpsock_posix的tcplistener的accept方法決定的:

tcplistenser的lc配置文件的keepalive字段>>0就開啟tcp keepalive

把服務器改造一下,支持能夠主動開關tcp keepalive:

以上就是golang基于websocket通信tcp keepalive研究記錄的詳細內容,更多關于golang websocket通信tcp keepalive的資料請關注腳本之家其它相關文章!

相關文章

  • 基于Go?goroutine實現一個簡單的聊天服務

    基于Go?goroutine實現一個簡單的聊天服務

    對于聊天服務,想必大家都不會陌生,因為在我們的生活中經常會用到,本文我們用?Go?并發(fā)來實現一個聊天服務器,這個程序可以讓一些用戶通過服務器向其它所有用戶廣播文本消息,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • golang中使用proto3協(xié)議導致的空值字段不顯示的問題處理方案

    golang中使用proto3協(xié)議導致的空值字段不顯示的問題處理方案

    這篇文章主要介紹了golang中使用proto3協(xié)議導致的空值字段不顯示的問題處理方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 詳解golang中的method

    詳解golang中的method

    這篇文章主要介紹了golang中的method的相關資料,幫助大家更好的理解和使用golang,感興趣的朋友可以了解下
    2021-01-01
  • 詳解Go語言如何解析帶注釋的json

    詳解Go語言如何解析帶注釋的json

    標準的json格式是不帶注釋,但是有時候為了方便理解json中各字段的含義,需要支持帶注釋的json,這篇文章主要介紹了Go語言解析帶注釋json的相關方法,希望對大家有所幫助
    2024-03-03
  • gin解析json格式的數據出錯的處理方案

    gin解析json格式的數據出錯的處理方案

    這篇文章主要介紹了gin解析json格式的數據出錯的處理方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Go 切片導致內存泄露的幾種原因

    Go 切片導致內存泄露的幾種原因

    某些情況下,對一個已存在的切片或數組進行切分操作可能會導致內存泄漏,本文主要介紹了Go 切片導致內存泄露的幾種原因,感興趣的可以了解一下
    2023-05-05
  • go?defer避坑指南之拆解延遲語句

    go?defer避坑指南之拆解延遲語句

    這篇文章主要為大家詳細介紹了go?defer避坑指南之如何拆解延遲語句,掌握正確使用方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-11-11
  • Golang操作命令行的幾種方式總結

    Golang操作命令行的幾種方式總結

    這篇文章主要介紹了Golang操作命令行的幾種方式總結,文章通過圍主題思想展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 使用Go實現郵箱驗證碼API功能

    使用Go實現郵箱驗證碼API功能

    本文將帶你了解一個項目如何實現一個郵箱驗證接口,即一個可用的發(fā)送郵箱驗證碼API和驗證驗證碼是否正確功能,對Go實現郵箱驗證碼API詳細過程感興趣的朋友一起看看吧
    2024-06-06
  • Golang對struct字段重新排序優(yōu)化數據結構性能實踐

    Golang對struct字段重新排序優(yōu)化數據結構性能實踐

    這篇文章主要為大家介紹了Golang對struct字段重新排序優(yōu)化數據結構性能實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12

最新評論

得荣县| 揭阳市| 离岛区| 自贡市| 东辽县| 蚌埠市| 六枝特区| 板桥市| 澎湖县| 广汉市| 漠河县| 宝清县| 潜江市| 南宁市| 安义县| 托里县| 平塘县| 岑巩县| 万州区| 来凤县| 固镇县| 东兰县| 土默特左旗| 庄浪县| 长泰县| 班戈县| 巫山县| 庆安县| 乐陵市| 泾川县| 闽侯县| 正蓝旗| 鸡东县| 晴隆县| 浦北县| 泰州市| 红安县| 丰城市| 渭源县| 十堰市| 拉孜县|