Maison > développement back-end > Golang > le corps du texte

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

WBOY
Libérer: 2024-06-04 11:59:57
original
1114 Les gens l'ont consulté

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";
}
Copier après la connexion
Copier après la connexion
  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)
}
Copier après la connexion

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)
  }
}
Copier après la connexion
  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";
}
Copier après la connexion
Copier après la connexion
  1. Créez et exécutez le serveur Go :
$ go build
$ ./websocket-server
Copier après la connexion
  1. Dans votre navigateur, connectez-vous au point de terminaison WebSocket :
ws://localhost:8080/ws
Copier après la connexion

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!

Étiquettes associées:
go
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!