Maison > Article > développement back-end > Comment fermer correctement la connexion WebSocket dans Golang
WebSocket dans Golang est un puissant outil de programmation réseau qui nous offre un moyen de communiquer en temps réel. Lorsque nous utilisons WebSocket pour communiquer, nous pouvons rencontrer des situations dans lesquelles nous devons fermer la connexion WebSocket. Alors, comment fermer correctement la connexion WebSocket dans Golang ? Cet article vous le présentera en détail.
Dans Golang, nous pouvons utiliser les bibliothèques net/http et github.com/gorilla/websocket dans la bibliothèque standard pour implémenter les connexions WebSocket. Dans les deux cas, il existe des méthodes pour fermer la connexion WebSocket.
Fermez la connexion WebSocket dans la bibliothèque standard
Dans la bibliothèque standard, nous pouvons utiliser la méthode close de WebSocket pour fermer la connexion. Après avoir reçu le message de fermeture, nous pouvons appeler la méthode close de WebSocket pour fermer la connexion. L'exemple de code est le suivant :
func main() { http.HandleFunc("/ws", websocketHandler) http.ListenAndServe(":8080", nil) } func websocketHandler(w http.ResponseWriter, r *http.Request) { upgrader := websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Fatal("Upgrade: ", err) } defer conn.Close() // 关闭 WebSocket 连接 // 读写逻辑 }
Dans l'exemple ci-dessus, nous avons utilisé le package WebSocket dans la bibliothèque standard pour créer une connexion WebSocket, et une fois la logique de lecture et d'écriture terminée, nous avons appelé la méthode conn.Close() via le mot-clé defer pour fermer la connexion.
Fermez la connexion WebSocket dans la bibliothèque gorilla/websocket
Dans la bibliothèque gorilla/websocket, nous pouvons fermer la connexion en appelant la méthode Close de WebSocket. L'exemple de code est le suivant :
func main() { http.HandleFunc("/ws", websocketHandler) http.ListenAndServe(":8080", nil) } func websocketHandler(w http.ResponseWriter, r *http.Request) { upgrader := websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Fatal("Upgrade: ", err) } defer conn.Close() // 关闭 WebSocket 连接 // 读写逻辑 // 关闭 WebSocket 连接 conn.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")) }
Dans l'exemple ci-dessus, nous. utilisez la bibliothèque gorilla/websocket Une connexion WebSocket est créée et une fois la logique de lecture et d'écriture terminée, un message de clôture est envoyé à l'autre partie en appelant la méthode conn.WriteMessage. De cette façon, l'autre partie peut fermer la connexion en recevant un message de fermeture.
Résumé
Que vous utilisiez le package WebSocket dans la bibliothèque standard ou que vous utilisiez la bibliothèque gorilla/websocket, vous pouvez fermer la connexion WebSocket via la méthode correspondante. Dans le développement réel, nous devons choisir la bibliothèque WebSocket qui nous convient en fonction de la situation réelle afin de mieux réaliser la fonction de communication en temps réel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!