Rumah >pembangunan bahagian belakang >Golang >Membuat pelayan WebSocket dalam GORILLA

Membuat pelayan WebSocket dalam GORILLA

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-27 04:02:08461semak imbas

Creating a WebSocket Server in Go with Gorilla

Membina Pelayan Go WebSocket Masa Nyata dengan Gorilla

WebSockets menawarkan penyelesaian yang mantap untuk komunikasi dua hala masa nyata antara pelanggan dan pelayan. Tutorial ini membimbing anda membuat pelayan WebSocket dalam Go, memanfaatkan perpustakaan Gorilla WebSocket yang popular.


Jadual Kandungan

  1. Memahami WebSockets dan Gorilla
  2. Persediaan Projek
  3. Struktur Direktori
  4. Memasang Gorilla WebSocket
  5. Membina Pelayan WebSocket
  6. Pengendalian Mesej
  7. Menjalankan Aplikasi
  8. Kesimpulan
  9. Repositori GitHub (Pemegang Tempat Pautan)

Memahami WebSockets dan Gorilla

WebSockets menyediakan saluran komunikasi dupleks penuh yang berterusan, tidak seperti model respons permintaan HTTP. Sambungan berterusan ini membolehkan pertukaran data yang cekap dan berterusan.

Pustaka Gorilla WebSocket memudahkan pelaksanaan WebSocket dalam Go, mengurus jabat tangan, mesej I/O dan kitaran hayat sambungan.


Persediaan Projek

Tutorial ini membina pelayan dan klien WebSocket asas:

  1. Pelayan WebSocket yang menerima sambungan.
  2. Pelanggan yang berinteraksi dengan pelayan.

Struktur Direktori

Atur projek anda seperti berikut:

<code>websocket-server/
├── main.go           # Application entry point
├── handlers/         # WebSocket handler functions
│   └── websocket.go  # Handles WebSocket connections and messages
├── static/           # Client-side HTML/JS files
│   └── index.html    # Simple client interface
└── go.mod            # Go module file</code>

Memasang Gorilla WebSocket

Pasang pakej Gorilla WebSocket:

<code class="language-bash">go get -u github.com/gorilla/websocket</code>

Membina Pelayan WebSocket

Langkah 1: main.go

Buat main.go:

<code class="language-go">package main

import (
    "fmt"
    "log"
    "net/http"
    "websocket-server/handlers"
)

func main() {
    http.HandleFunc("/ws", handlers.HandleWebSocket)
    http.Handle("/", http.FileServer(http.Dir("./static")))
    port := ":8080"
    fmt.Printf("Server running on http://localhost%s\n", port)
    log.Fatal(http.ListenAndServe(port, nil))
}</code>

Ini menyediakan pelayan HTTP, menyediakan fail statik dan mengendalikan sambungan WebSocket di /ws.

Langkah 2: Pengendali WebSocket (websocket.go)

Dalam direktori handlers, buat websocket.go:

<code class="language-go">package handlers

import (
    "fmt"
    "net/http"

    "github.com/gorilla/websocket"
)

var upgrader = websocket.Upgrader{
    CheckOrigin: func(r *http.Request) bool { return true },
}

func HandleWebSocket(w http.ResponseWriter, r *http.Request) {
    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        fmt.Println("Upgrade failed:", err)
        return
    }
    defer conn.Close()
    fmt.Println("Client connected")
    for {
        _, msg, err := conn.ReadMessage()
        if err != nil {
            fmt.Println("Read failed:", err)
            break
        }
        fmt.Printf("Received: %s\n", msg)
        if err := conn.WriteMessage(websocket.TextMessage, msg); err != nil {
            fmt.Println("Write failed:", err)
            break
        }
    }
}</code>

Pengendali ini meningkatkan sambungan HTTP, membaca mesej dan menggemakannya kembali.


Pengendalian Mesej

HandleWebSocket memproses mesej masuk. Anda boleh melanjutkan ini untuk melaksanakan ciri seperti penyiaran atau kegigihan mesej.


Menjalankan Aplikasi

Langkah 1: Pelanggan Mudah (index.html)

Buat index.html dalam direktori static: (Bahagian ini memerlukan pelaksanaan JavaScript sisi klien untuk menyambung ke soket web. Contoh asas ditinggalkan untuk ringkas, tetapi banyak contoh tersedia dalam talian.)

Langkah 2: Jalankan Pelayan

Lari go run main.go. Kemudian, buka http://localhost:8080 dalam penyemak imbas anda (dengan JavaScript sisi klien yang sesuai disertakan).


Kesimpulan

Tutorial ini menunjukkan pelayan WebSocket asas menggunakan gorila. WebSockets sesuai untuk aplikasi masa nyata. Kembangkan asas ini dengan pengesahan, penyiaran, dan penyimpanan data seperti yang diperlukan.


GitHub Repository

[masukkan pautan repositori github di sini]

Atas ialah kandungan terperinci Membuat pelayan WebSocket dalam GORILLA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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