共計 1331 個字符,預計需要花費 4 分鐘才能閱讀完成。
在 Go 語言中實現 WebSocket 通信,可以使用標準庫中提供的 net/http
和github.com/gorilla/websocket
包。以下是一個簡單的示例:
package main
import ("fmt"
"net/http"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{CheckOrigin: func(r *http.Request) bool {return true
},
}
func handler(w http.ResponseWriter, r *http.Request) {conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {fmt.Println("Error upgrading to WebSocket:", err)
return
}
for {// 讀取客戶端發送的消息
_, message, err := conn.ReadMessage()
if err != nil {fmt.Println("Error reading message:", err)
break
}
// 輸出客戶端發送的消息
fmt.Printf("Received message: %s\n", message)
// 發送消息給客戶端
err = conn.WriteMessage(websocket.TextMessage, []byte("Message received"))
if err != nil {fmt.Println("Error writing message:", err)
break
}
}
}
func main() {http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
在上面的代碼中,我們首先創建了一個 upgrader
實例,用于將 HTTP 連接升級為 WebSocket 連接。然后定義了一個處理函數 handler
,當有客戶端連接時會調用該函數。在處理函數中,我們通過upgrader.Upgrade
方法將 HTTP 連接升級為 WebSocket 連接,并通過 conn.ReadMessage
讀取客戶端發送的消息,然后通過 conn.WriteMessage
發送消息給客戶端。
最后在 main
函數中,我們通過 http.HandleFunc
將處理函數注冊到路由上,然后通過 http.ListenAndServe
啟動 HTTP 服務器,監聽在 8080 端口上。
在客戶端可以使用 JavaScript 來與該 WebSocket 服務器進行通信,例如:
const ws = new WebSocket("ws://localhost:8080/");
ws.onopen = function() {console.log("Connected to WebSocket server");
ws.send("Hello, server!");
};
ws.onmessage = function(event) {console.log("Received message from server:", event.data);
};
通過這種方式,可以使用 Go 語言實現 WebSocket 通信。
丸趣 TV 網 – 提供最優質的資源集合!
正文完