Påkrevd import
Den første tingen å gjøre er å importere de nødvendige pakkene. For dette prosjektet trenger vi FMT -pakken, Net/HTTP og Gorilla -pakken.
Vi kan gjøre denne importen som:
import (Når vi er importert, kan vi begynne å bygge serveren vår.
Oppgrader HTTP -tilkobling
Det første trinnet i prosjektet vårt er å ta en HTTP -tilkobling og oppgradere det til en websocket . Vi kan gjøre dette ved hjelp av websocket.Oppgradert struktur. Det tar les og skriver bufferstørrelse som definert i kildekoden nedenfor:
https: // pkg.gå.dev/github.com/gorilla/websocket#oppgradering
For vårt eksempel vil vi bruke standardalternativene, men angi sjekkorigin til en funksjon som returnerer sann. Dette vil forhindre at serveren blokkerer forbindelsen på grunn av CORS.
var oppgradering = websocket.OppgraderingLegg til behandler
Neste, la oss en HTTP -handler når en klient treffer /ekko endepunktet. Vi vil definere senere i hovedfunksjonen.
func ekko (w http.ResponseWriter, R *http.Be om)I eksemplet ovenfor definerer vi en funksjon som tar responsforfatteren og en peker til HTTP.Respons.
Vi oppgraderer HTTP -forbindelsen til WebSocket -protokollen ved å bruke oppgraderingsfunksjonen. Deretter bruker vi en for loop for å lytte og lese innkommende meldinger. Vi skriver deretter ut meldingen til konsollen og gjenspeiler meldingen tilbake til klienten.
Legg til endepunkt for websocket
Neste trinn er å legge til en enkel HTTP -behandler for endepunktet for websocket. Vi kan bruke funksjonen som:
func hjem (w http.ResponseWriter, R *http.Be om)Opprett klient
For å samhandle med websocket -serveringen, må vi opprette en klient. Vi kan gjøre dette ved å lage en enkel HTML -fil fra som bruker JavaScript for å åpne en websocket -tilkobling til serveren. Et eksempelkode er som vist:
indeks.htmlKjør server
Det siste trinnet er å definere rutene og ringe HTTP -håndtererne i hovedfunksjonen. Koden er som vist:
FUNCMAIN ()Lagre filene og kjør:
gå løp ws.gåÅpne indeksen.HTML -fil i nettleseren din. Du bør se en tilkoblet melding når nettleseren etablerer en tilkobling.
Hvis du skriver inn en melding i feltet, svarer serveren den tilbake.
Full kildekode for programmet er som vist:
pakkehovedKonklusjon
Dette var en nybegynnerguide for å jobbe med WebSocket i Go. I denne guiden dekket vi hvordan du oppgraderer en HTTP -tilkobling til WebSocket -protokollen, leser meldinger og svarer meldinger tilbake til klienten.