Wymagane import
Pierwszą rzeczą do zrobienia jest zaimportowanie wymaganych pakietów. Do tego projektu będziemy potrzebować pakietu FMT, NET/HTTP i pakietu Gorilla.
Możemy zrobić ten import jako:
import (Po zaimportowaniu możemy zacząć budować nasz serwer.
Uaktualnij połączenie HTTP
Pierwszym krokiem w naszym projekcie jest podjęcie połączenia HTTP i uaktualnienie go do WebSocket . Możemy to zrobić za pomocą WebSocket.Ulepsz struktura. Występuje rozmiar bufora odczytu i zapisu zgodnie z definicją w kodzie źródłowym poniżej:
https: // pkg.Iść.dev/github.COM/Gorilla/WebSocket#Uaktualniacz
W naszym przykładzie użyjemy opcji domyślnych, ale ustawić Checksorigin na funkcję, która zwraca true. Zapobiegnie to blokowaniu serwera z powodu CORS.
var aktualier = WebSocket.UlepszenieDodaj obsługę
Następnie pozwól nam obsługi HTTP, gdy klient trafia w punkt końcowy. Zdefiniujemy później w głównej funkcji.
FUNC ECHO (W HTTP.ResponseWriter, r *http.Wniosek)W powyższym przykładzie definiujemy funkcję, która przenosi respondwriter i wskaźnik do HTTP.Odpowiedź.
Uaktualniamy połączenie HTTP z protokołem WebSocket za pomocą funkcji aktualizacji. Następnie używamy pętli do słuchania i czytania przychodzących wiadomości. Następnie drukujemy wiadomość do konsoli i odzwierciedlamy wiadomość z powrotem do klienta.
Dodaj punkt końcowy WebSocket
Następnym krokiem jest dodanie prostego obsługi HTTP dla punktu końcowego WebSocket. Możemy użyć tej funkcji jako:
FUNC HOME (W HTTP.ResponseWriter, r *http.Wniosek)Utwórz klienta
Aby wchodzić w interakcje z obsługą WebSocket, musimy utworzyć klienta. Możemy to zrobić, tworząc prosty plik HTML z używa JavaScript do otwarcia połączenia WebSocket z serwerem. Przykładowy kod jest taki jak pokazano:
indeks.htmlUruchom serwer
Ostatnim krokiem jest zdefiniowanie tras i wywołanie przewodników HTTP w głównej funkcji. Kod jest tak, jak pokazano:
funcMain ()Zapisz pliki i uruchom:
Uruchom WS.IśćOtwórz indeks.plik HTML w przeglądarce. Powinieneś zobaczyć podłączoną wiadomość, gdy przeglądarka ustanowi połączenie.
Jeśli wpiszesz jakąkolwiek wiadomość w polu, serwer odpowiada.
Pełny kod źródłowy programu jest taki jak pokazano:
Pakiet MainWniosek
To był przewodnik dla początkujących o pracy z WebSocket w Go. W tym przewodniku omówiliśmy, jak uaktualnić połączenie HTTP do protokołu WebSocket, odczytać wiadomości i odpowiada wiadomości z powrotem do klienta.