Wie verwende ich Go und http.Transport für die WebSocket-Kommunikation?

王林
Freigeben: 2023-07-21 18:49:14
Original
772 Leute haben es durchsucht

Wie verwende ich Go und http.Transport für die WebSocket-Kommunikation?

WebSocket ist ein Protokoll, das eine bidirektionale Kommunikation in Netzwerkanwendungen ermöglicht. Es ermöglicht dem Server, Nachrichten aktiv an den Client zu senden, ohne dass der Client zuerst eine Anfrage initiieren muss. In der Go-Sprache können Sie http.Transport verwenden, um WebSocket-Verbindungen zu erstellen und zu verwalten.

Hier ist ein Beispielcode für die WebSocket-Kommunikation mit Go und http.Transport:

package main import ( "fmt" "log" "net/http" "golang.org/x/net/websocket" ) func EchoServer(ws *websocket.Conn) { for { var message string err := websocket.Message.Receive(ws, &message) if err != nil { log.Println("receive failed:", err) break } log.Println("received:", message) err = websocket.Message.Send(ws, message) if err != nil { log.Println("send failed:", err) break } log.Println("sent:", message) } } func main() { http.Handle("/", websocket.Handler(EchoServer)) err := http.ListenAndServe(":8080", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } }
Nach dem Login kopieren

Der obige Code erstellt einen WebSocket-Server, der empfangene Nachrichten unverändert an den Client zurücksendet. In der Hauptfunktion verwenden wir http.Handle und websocket.Handler, um die EchoServer-Funktion als Prozessor zu registrieren. Verwenden Sie dann http.ListenAndServe, um den Server zu starten, der Port 8080 überwacht.

Auf der Clientseite können wir http.Transport verwenden, um eine WebSocket-Verbindung herzustellen und Daten über die Methoden „Senden“ und „Empfangen“ zu senden und zu empfangen. Das Folgende ist ein einfacher Client-Beispielcode:

package main import ( "fmt" "log" "net/http" "golang.org/x/net/websocket" ) func main() { origin := "http://localhost/" url := "ws://localhost:8080/" ws, err := websocket.Dial(url, "", origin) if err != nil { log.Fatal("dial failed:", err) } message := "Hello, WebSocket!" err = websocket.Message.Send(ws, message) if err != nil { log.Fatal("send failed:", err) } var response string err = websocket.Message.Receive(ws, &response) if err != nil { log.Fatal("receive failed:", err) } fmt.Println("received:", response) }
Nach dem Login kopieren

Im obigen Code verwenden wir websocket.Dial, um eine WebSocket-Verbindung zu erstellen. Verwenden Sie dann die Methode websocket.Message.Send, um die Nachricht zu senden, und verwenden Sie websocket.Message.Receive, um die vom Server zurückgegebene Nachricht zu empfangen.

Mit dem obigen Codebeispiel können wir ganz einfach WebSocket-Verbindungen mit Go und http.Transport erstellen und verwalten. WebSocket bietet effiziente und bidirektionale Echtzeit-Kommunikationsfunktionen für Anwendungen und eignet sich für viele verschiedene Anwendungsszenarien. Ich hoffe, dieser Artikel ist hilfreich für Sie!

Das obige ist der detaillierte Inhalt vonWie verwende ich Go und http.Transport für die WebSocket-Kommunikation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!