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

Membuat pelayan WebSocket dalam GORILLA

Mary-Kate Olsen
Lepaskan: 2025-01-27 04:02:08
asal
460 orang telah melayarinya

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>
Salin selepas log masuk

Memasang Gorilla WebSocket

Pasang pakej Gorilla WebSocket:

go get -u github.com/gorilla/websocket
Salin selepas log masuk

Membina Pelayan WebSocket

Langkah 1: main.go

Buat main.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))
}
Salin selepas log masuk

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:

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
        }
    }
}
Salin selepas log masuk

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 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan