Importações necessárias
A primeira coisa a fazer é importar os pacotes necessários. Para este projeto, precisaremos do pacote FMT, NET/HTTP e o pacote Gorilla.
Podemos fazer essas importações como:
importação (Uma vez importado, podemos começar a construir nosso servidor.
Atualize a conexão HTTP
O primeiro passo em nosso projeto é levar uma conexão HTTP e atualizá -la para um WebSocket . Podemos fazer isso usando o websocket.Upgrade Struct. Ele leva o tamanho do buffer de leitura e gravação, conforme definido no código -fonte abaixo:
https: // pkg.ir.Dev/Github.com/gorilla/webSocket#Uprader
Para o nosso exemplo, usaremos as opções padrão, mas definiremos o checkorigin como uma função que retorna true. Isso impedirá que o servidor bloqueie a conexão devido a CORS.
VAR Upgrader = WebSocket.AtualizadorAdicione o manipulador
Em seguida, deixe -nos um manipulador HTTP quando um cliente atingir o fim de extremidade /eco. Vamos definir mais adiante na função principal.
func eco (w http.ResponseWriter, r *http.Solicitar)No exemplo acima, definimos uma função que leva o responsável pela resposta e um ponteiro para o HTTP.Resposta.
Nós atualizamos a conexão HTTP com o protocolo WebSocket usando a função de atualizador. Em seguida, usamos um loop para ouvir e ler mensagens de entrada. Em seguida, imprimimos a mensagem para o console e ecoarmos a mensagem de volta ao cliente.
Adicione o WebSocket Endpoint
O próximo passo é adicionar um manipulador HTTP simples para o WebSocket Endpoint. Podemos usar a função como:
Func Home (W HTTP.ResponseWriter, r *http.Solicitar)Criar cliente
Para interagir com o serviço WebSocket, precisamos criar um cliente. Podemos fazer isso criando um arquivo html simples a partir que usa JavaScript para abrir uma conexão WebSocket com o servidor. Um código de exemplo é como mostrado:
índice.htmlExecutar servidor
O último passo é definir as rotas e chamar os manipuladores HTTP na função principal. O código é como mostrado:
funcmain ()Salve os arquivos e execute:
vá correr ws.irAbra o índice.arquivo html em seu navegador. Você deve ver uma mensagem conectada assim que o navegador estabelecer uma conexão.
Se você digitar alguma mensagem no campo, o servidor o responderá de volta.
O código -fonte completo do programa é como mostrado:
Pacote principalConclusão
Este foi um guia para iniciantes para trabalhar com WebSocket em Go. Neste guia, abordamos como atualizar uma conexão HTTP com o WebSocket Protocol, lemos mensagens e responde às mensagens de volta ao cliente.