So erstellen Sie einen WebSocket-Server mit der Go-Sprache

WBOY
Freigeben: 2023-06-04 08:40:46
Original
1684 Leute haben es durchsucht

WebSockets ist ein fortschrittliches Netzwerkprotokoll, das eine bidirektionale Kommunikation zwischen Client und Server über eine einzige TCP-Verbindung ermöglicht. WebSockets unterstützen Echtzeit-Datenübertragung, Online-Spiele, Chatrooms und andere Anwendungen und sind daher bei Entwicklern sehr beliebt.

Go-Sprache ist eine leistungsstarke, prägnante Programmiersprache, die sich zum Erstellen von WebSockets-Servern eignet. In diesem Artikel wird detailliert beschrieben, wie Sie einen WebSocket-Server mithilfe der Go-Sprache erstellen.

  1. Verstehen Sie das WebSocket-Protokoll

Das WebSocket-Protokoll verwendet den Handshake und den Upgrade-Header des HTTP-Protokolls, um ein Upgrade auf eine WebSocket-Verbindung durchzuführen. WebSocket-Verbindungen verwenden immer Wagenrücklauf- und Zeilenvorschubzeichen als Nachrichtenabschlusszeichen. WebSocket-Nachrichten können Text- oder Binärdaten sein.

  1. Installieren Sie die Gorilla WebSocket-Bibliothek

Die Gorilla WebSocket-Bibliothek ist eine der beliebtesten WebSocket-Bibliotheken in der Go-Sprache. Sie bietet Implementierungen von WebSocket-Clients und -Servern. Sie können die Gorilla WebSocket-Bibliothek mit dem folgenden Befehl installieren:

go get github.com/gorilla/websocket
Nach dem Login kopieren
  1. Erstellen Sie einen WebSocket-Server

Hier ist ein einfaches Beispiel für einen WebSocket-Server:

package main

import (
    "log"
    "net/http"
    "github.com/gorilla/websocket"
)

var upgrader = websocket.Upgrader{
    ReadBufferSize:  1024,
    WriteBufferSize: 1024,
}

func main() {
    http.HandleFunc("/echo", echoHandler)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

func echoHandler(w http.ResponseWriter, r *http.Request) {
    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        log.Println(err)
        return
    }
    defer conn.Close()

    for {
        messageType, message, err := conn.ReadMessage()
        if err != nil {
            log.Println(err)
            break
        }
        log.Printf("Received message: %s
", message)
        err = conn.WriteMessage(messageType, message)
        if err != nil {
            log.Println(err)
            break
        }
    }
}
Nach dem Login kopieren

Im obigen Code verarbeitet die echoHandler-Funktion alle WebSocket-Verbindungen. Es verwendet den von der Gorilla WebSocket-Bibliothek bereitgestellten Upgrader, um HTTP-Anfragen auf WebSocket-Verbindungen zu aktualisieren. Nachdem die Verbindung aktualisiert wurde, liest der Server die Nachricht vom Client mit conn.ReadMessage() und gibt die Nachricht mit conn.WriteMessage() an den Client zurück.

  1. Ausführen des WebSocket-Servers

Führen Sie nun den WebSocket-Server aus. Gehen Sie im Terminal in das Verzeichnis, in dem sich die Go-Dateien befinden, und führen Sie den folgenden Befehl aus:

go run main.go
Nach dem Login kopieren

An diesem Punkt sollten Sie eine Ausgabe ähnlich der folgenden sehen:

2021/08/11 15:32:31 Listening on port 8080...
Nach dem Login kopieren

Dies bedeutet, dass Ihr Server Port 8080 All überwacht eingehende Verbindungen.

  1. Testen des WebSocket-Servers

Nachdem Sie nun den WebSocket-Server erfolgreich erstellt haben, können Sie ihn mit dem WebSocket-Client testen. Es wird empfohlen, zum Testen den Chrome-Browser zu verwenden, da der Chrome-Browser über einen integrierten WebSocket-Client verfügt. Öffnen Sie die Entwicklertools in Chrome, wechseln Sie zum Konsolen-Tab und geben Sie den folgenden Code ein:

var ws = new WebSocket("ws://localhost:8080/echo");
ws.onopen = function() {
    console.log("Connected");
    ws.send("Hello, World!");
};
ws.onmessage = function(event) {
    console.log("Received message: " + event.data);
};
ws.onclose = function() {
    console.log("Disconnected");
};
Nach dem Login kopieren

Chrome stellt eine WebSocket-Verbindung zu Ihrem Server her und sendet eine „Hello, World!“-Nachricht. Ihr Server gibt die Nachricht zurück und sendet sie an den Client zurück. In Ihrer Konsole sollte eine Ausgabe ähnlich der folgenden angezeigt werden:

Connected
Received message: Hello, World!
Disconnected
Nach dem Login kopieren
  1. Zusammenfassung

In diesem Artikel wird erläutert, wie Sie einen WebSocket-Server mithilfe der Gorilla WebSocket-Bibliothek und der Go-Sprache erstellen. Jetzt wissen Sie, wie Sie das WebSocket-Protokoll verwenden, um Echtzeit-Kommunikationsfunktionen zu implementieren. Mit WebSocket können Sie eine einzelne TCP-Verbindung zum Übertragen von Daten verwenden, ohne für jede Anfrage eine neue Verbindung herstellen zu müssen. Dadurch werden Leistung und Skalierbarkeit verbessert, sodass sich der Einsatz in Anwendungen lohnt.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen WebSocket-Server mit der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!