WebSocket in Golang ist ein leistungsstarkes Netzwerkprogrammierungstool, das uns die Möglichkeit bietet, in Echtzeit zu kommunizieren. Wenn wir WebSocket zur Kommunikation verwenden, kann es vorkommen, dass wir die WebSocket-Verbindung schließen müssen. Wie schließt man also die WebSocket-Verbindung in Golang korrekt? In diesem Artikel wird es Ihnen ausführlich vorgestellt.
In Golang können wir die Bibliotheken net/http und github.com/gorilla/websocket in der Standardbibliothek verwenden, um WebSocket-Verbindungen zu implementieren. In beiden Fällen gibt es Methoden zum Schließen der WebSocket-Verbindung.
Schließen Sie die WebSocket-Verbindung in der Standardbibliothek.
In der Standardbibliothek können wir die Close-Methode von WebSocket verwenden, um die Verbindung zu schließen. Nachdem wir die Schließnachricht erhalten haben, können wir die Schließmethode von WebSocket aufrufen, um die Verbindung zu schließen. Das Codebeispiel lautet wie folgt:
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 连接 // 读写逻辑 }
Im obigen Beispiel haben wir das WebSocket-Paket in der Standardbibliothek verwendet, um eine WebSocket-Verbindung zu erstellen, und nach Beendigung der Lese- und Schreiblogik haben wir die Methode conn.Close() über aufgerufen Schlüsselwort defer, um die Verbindung zu schließen.
Schließen Sie die WebSocket-Verbindung in der Gorilla/Websocket-Bibliothek
In der Gorilla/Websocket-Bibliothek können wir die Verbindung schließen, indem wir die Close-Methode von WebSocket aufrufen:
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, "")) }
Im obigen Beispiel haben wir Verwenden Sie die Gorilla/Websocket-Bibliothek. Eine WebSocket-Verbindung wird erstellt. Nachdem die Lese- und Schreiblogik beendet ist, wird durch Aufrufen der conn.WriteMessage-Methode eine Abschlussnachricht an die andere Partei gesendet. Auf diese Weise kann der andere Teilnehmer die Verbindung schließen, indem er eine Abschlussnachricht erhält.
Zusammenfassung
Unabhängig davon, ob Sie das WebSocket-Paket in der Standardbibliothek oder die Gorilla/Websocket-Bibliothek verwenden, können Sie die WebSocket-Verbindung über die entsprechende Methode schließen. In der tatsächlichen Entwicklung müssen wir basierend auf der tatsächlichen Situation die WebSocket-Bibliothek auswählen, die zu uns passt, um die Echtzeitkommunikationsfunktion besser zu realisieren.
Das obige ist der detaillierte Inhalt vonSo schließen Sie die WebSocket-Verbindung in Golang ordnungsgemäß. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!