在Go語言中,使用WebSocket需要使用net/http
包和github.com/gorilla/websocket
包。
首先,導入所需的包:
import (
"net/http"
"github.com/gorilla/websocket"
)
接下來,創建一個websocket.Upgrader
對象,用于將HTTP連接升級為WebSocket連接:
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
}
然后,定義一個處理WebSocket連接的處理函數:
func websocketHandler(w http.ResponseWriter, r *http.Request) {
// 將HTTP連接升級為WebSocket連接
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Println(err)
return
}
defer conn.Close()
// 處理WebSocket連接
for {
// 讀取客戶端發送的消息
messageType, message, err := conn.ReadMessage()
if err != nil {
log.Println(err)
break
}
// 對收到的消息進行處理
// ...
// 發送消息給客戶端
err = conn.WriteMessage(messageType, message)
if err != nil {
log.Println(err)
break
}
}
}
最后,在路由中注冊WebSocket處理函數:
http.HandleFunc("/websocket", websocketHandler)
以上就是使用Go語言處理WebSocket連接的基本步驟。你可以根據實際需求對處理函數進行定制,比如加入消息處理邏輯、錯誤處理等。