Bagaimana untuk menggunakan Go WebSocket dalam persekitaran pengeluaran?

WBOY
Lepaskan: 2024-06-04 11:59:57
asal
1061 orang telah melayarinya

Menggunakan pelayan WebSocket dalam Go memerlukan langkah berikut: Pilih dan konfigurasikan pelayan web untuk menyokong WebSocket. Mulakan pelayan Go WebSocket menggunakan fungsi http.ListenAndServe. Mengendalikan sambungan WebSocket, termasuk menghantar dan menerima mesej, dalam fungsi WebSocketHandler. Kes praktikal menunjukkan cara menggunakan pelayan WebSocket mudah menggunakan Go dan Nginx.

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

Go WebSocket: Panduan Penggunaan dalam Pengeluaran

Dalam pembangunan web moden, WebSocket ialah teknologi penting yang membolehkan komunikasi dua hala, masa nyata antara pelayan dan pelanggan. Bahasa Go secara asli menyokong WebSocket, membolehkan pembangun mencipta pelayan WebSocket yang mantap dan cekap.

Menggunakan Pelayan WebSocket

Menggunakan pelayan Go WebSocket dalam persekitaran pengeluaran memerlukan beberapa langkah:

  1. Pilih pelayan web: Anda boleh menggunakan mana-mana pelayan web yang mematuhi HTTP/1.1 protokol, seperti Nginx , Apache atau Caddy.
  2. Konfigurasikan Pelayan Web: Konfigurasikan pelayan web anda untuk memajukan permintaan WebSocket ke pelayan Go anda. Contohnya, dalam Nginx, anda boleh menambah baris berikut pada fail konfigurasi anda:
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";
}
Salin selepas log masuk
Salin selepas log masuk
  1. Mulakan pelayan Go: Gunakan fungsi http.ListenAndServe untuk memulakan pelayan Go WebSocket anda pada port yang ditentukan. Contohnya:
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)
}
Salin selepas log masuk

WebSocketHandler fungsi mengendalikan sambungan WebSocket masuk. Ia boleh menghantar dan menerima mesej, mengendalikan ralat dan menutup sambungan.

Kes praktikal:

Berikut ialah contoh menggunakan pelayan WebSocket mudah menggunakan Go dan Nginx:

  1. Dalam kod Go, cipta pengendali WebSocket berikut:
    konfigurasi fail Ngi
    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)
      }
    }
    Salin selepas log masuk
  1. konfigurasi pemajuan WebSocket berikut:
    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";
    }
    Salin selepas log masuk
    Salin selepas log masuk
  1. Bina dan jalankan pelayan Go:
    $ go build
    $ ./websocket-server
    Salin selepas log masuk
  1. Dalam penyemak imbas anda, sambung ke titik akhir WebSocket:

ws://localhost:8080/ws
Salin selepas log masuk
Kini anda boleh berinteraksi dengan pelayan, menghantar dan menerima sebenar mesej masa. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Go WebSocket dalam persekitaran pengeluaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
go
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!