WebSocket 介紹

websocket 提供一種在client與server間全雙工通訊的方式。其通訊協定可參考:RFC 6455

websocket 通訊方式

記憶體使用量

如果照正常程式設計,要服務百萬個連線,大約要20GB左右的記憶體。因此必須要對程式做最佳化,以免記憶體使用過大。

  • goroutines
  • select / poll:定期踢掉不在線上或斷線的使用者連線。(syscall.Timeval, syscall.Select)
  • epoll

Go 語言使用函數

基本上Go提供:”golang.org/x/net/websocket” 供使用者使用。不過大多使用者會使用:”github.com/gorilla/websocket” 提供比較完整的使用方式。

參考資料