Maison >développement back-end >Golang >Comment utiliser Go et http.Transport pour la communication WebSocket ?
Comment utiliser Go et http.Transport pour la communication WebSocket ?
WebSocket est un protocole qui permet une communication bidirectionnelle dans les applications réseau. Il permet au serveur de transmettre activement des messages au client sans que celui-ci ait à lancer une demande au préalable. En langage Go, vous pouvez utiliser http.Transport pour créer et gérer des connexions WebSocket.
Voici un exemple de code pour la communication WebSocket utilisant Go et 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) } }
Le code ci-dessus crée un serveur WebSocket qui renvoie les messages reçus au client inchangés. Dans la fonction principale, nous utilisons http.Handle et websocket.Handler pour enregistrer la fonction EchoServer en tant que processeur. Utilisez ensuite http.ListenAndServe pour démarrer le serveur en écoute sur le port 8080.
Côté client, nous pouvons utiliser http.Transport pour créer une connexion WebSocket et envoyer et recevoir des données via les méthodes Send et Receiver. Voici un exemple de code client simple :
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) }
Dans le code ci-dessus, nous utilisons websocket.Dial pour créer une connexion WebSocket. Utilisez ensuite la méthode websocket.Message.Send pour envoyer des messages et utilisez websocket.Message.Receive pour recevoir les messages renvoyés par le serveur.
Avec l'exemple de code ci-dessus, nous pouvons facilement créer et gérer des connexions WebSocket à l'aide de Go et http.Transport. WebSocket offre des capacités de communication bidirectionnelles efficaces et en temps réel pour les applications et convient à de nombreux scénarios d'application différents. J'espère que cet article vous aidera !
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!