Le déploiement d'un serveur WebSocket dans Go nécessite les étapes suivantes : Sélectionnez et configurez un serveur Web pour prendre en charge WebSocket. Démarrez le serveur Go WebSocket à l'aide de la fonction http.ListenAndServe. Gérez les connexions WebSocket, y compris l'envoi et la réception de messages, dans la fonction WebSocketHandler. Un cas pratique montre comment déployer un simple serveur WebSocket à l'aide de Go et Nginx.
Go WebSocket : Guide de déploiement en production
Dans le développement Web moderne, WebSocket est une technologie cruciale qui permet une communication bidirectionnelle en temps réel entre les serveurs et les clients. Le langage Go prend nativement en charge WebSocket, permettant aux développeurs de créer des serveurs WebSocket robustes et efficaces.
Déployer un serveur WebSocket
Le déploiement d'un serveur Go WebSocket dans un environnement de production nécessite quelques étapes :
location /ws { proxy_pass http://localhost:8080; proxy_websocket on; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }
http.ListenAndServe
pour démarrer votre serveur Go WebSocket sur le port spécifié. Par exemple : la fonction package main import ( "log" "net/http" ) func main() { mux := http.NewServeMux() // 添加 WebSocket 处理程序 mux.HandleFunc("/ws", WebSocketHandler) log.Printf("Server listening on port 8080") http.ListenAndServe(":8080", mux) }
WebSocketHandler gère les connexions WebSocket entrantes. Il peut envoyer et recevoir des messages, gérer les erreurs et fermer les connexions.
Cas pratique :
Voici un exemple de déploiement d'un serveur WebSocket simple utilisant Go et Nginx :
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 { w.WriteHeader(http.StatusBadRequest) return } defer conn.Close() // 从客户端接收并回显消息 for { messageType, p, err := conn.ReadMessage() if err != nil { log.Println(err) break } conn.WriteMessage(messageType, p) } }
location /ws { proxy_pass http://localhost:8080; proxy_websocket on; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }
$ go build $ ./websocket-server
ws://localhost:8080/ws
Vous pouvez maintenant interagir avec le serveur, en envoyant et en recevant des données réelles. messages horaires.
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!