Maison  >  Article  >  développement back-end  >  Comment déployer Go WebSocket dans un environnement de production ?

Comment déployer Go WebSocket dans un environnement de production ?

WBOY
WBOYoriginal
2024-06-04 11:59:571128parcourir

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 如何在生产环境中部署?

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 :

  1. Choisissez un serveur Web : Vous pouvez utiliser n'importe quel serveur Web compatible HTTP/1.1 et prenant en charge le WebSocket protocole, tel que Nginx , Apache ou Caddy.
  2. Configurer le serveur Web : Configurez votre serveur Web pour transférer les requêtes WebSocket vers votre serveur Go. Par exemple, dans Nginx, vous pouvez ajouter la ligne suivante à votre fichier de configuration :
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";
}
  1. Démarrez le serveur Go : Utilisez la fonction 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 :

  1. Dans le code Go, créez le gestionnaire WebSocket suivant :
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)
  }
}
  1. Dans le fichier de configuration Nginx, ajoutez la configuration de transfert WebSocket suivante :
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";
}
  1. Créez et exécutez le serveur Go :
$ go build
$ ./websocket-server
  1. Dans votre navigateur, connectez-vous au point de terminaison WebSocket :
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn