Go WebSocket を実稼働環境にデプロイするにはどうすればよいですか?

WBOY
リリース: 2024-06-04 11:59:57
オリジナル
1114 人が閲覧しました

Go で WebSocket サーバーをデプロイするには、次の手順が必要です: WebSocket をサポートする Web サーバーを選択して構成します。 http.ListenAndServe 関数を使用して Go WebSocket サーバーを開始します。 WebSocketHandler 関数で、メッセージの送受信を含む WebSocket 接続を処理します。実際のケースでは、Go と Nginx を使用して単純な WebSocket サーバーをデプロイする方法を示します。

Go WebSocket 如何在生产环境中部署?

Go WebSocket: 本番環境での導入ガイド

最新の Web 開発において、WebSocket はサーバーとクライアント間の双方向のリアルタイム通信を可能にする重要なテクノロジです。 Go 言語は WebSocket をネイティブにサポートしているため、開発者は堅牢で効率的な WebSocket サーバーを作成できます。

WebSocket サーバーのデプロイ

実稼働環境に Go WebSocket サーバーをデプロイするには、いくつかの手順が必要です:

  1. Web サーバーを選択します: HTTP/1.1 に準拠し、WebSocket をサポートする任意の Web サーバーを使用できます。 Nginx 、Apache、Caddy などのプロトコル。
  2. Web サーバーを構成する: WebSocket リクエストを Go サーバーに転送するように Web サーバーを構成します。たとえば、Nginx では、構成ファイルに次の行を追加できます:
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. Go サーバーを起動します: http.ListenAndServe 関数を使用して、指定したポートで Go WebSocket サーバーを起動します。例:
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 関数は、受信 WebSocket 接続を処理します。メッセージの送受信、エラーの処理、接続の終了を行うことができます。

実際的なケース:

ここでは、Go と Nginx を使用して単純な WebSocket サーバーをデプロイする例を示します:

  1. Go コードで、次の WebSocket ハンドラーを作成します:
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. Nginx 構成ファイルで、次の WebSocket 転送設定:
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. Go サーバーを構築して実行します:
$ go build
$ ./websocket-server
ログイン後にコピー
  1. ブラウザで、WebSocket エンドポイントに接続します:
ws://localhost:8080/ws
ログイン後にコピー

これで、サーバーと対話して、実際のデータを送受信できるようになります。時間のメッセージ。

以上がGo WebSocket を実稼働環境にデプロイするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
go
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!