Logo Passei Direto
Buscar

Como faço para criar um web socket em golang?

User badge image

Enviado por Ton Cabral do Nascimento ano passado

Respostas

User badge image

Ed Inteligência Artificial do Passei Direto Verified user icon

ano passado

Para criar um WebSocket em Golang, você pode seguir os seguintes passos: 1. Importe o pacote "net/http" e "github.com/gorilla/websocket". 2. Crie uma função que irá lidar com a conexão WebSocket. Essa função deve receber como parâmetro um objeto "http.ResponseWriter" e um objeto "http.Request". 3. Use a função "websocket.Upgrade" para atualizar a conexão HTTP para uma conexão WebSocket. 4. Crie um loop infinito para ler as mensagens recebidas do cliente usando a função "conn.ReadMessage()". 5. Para enviar mensagens para o cliente, use a função "conn.WriteMessage()". Aqui está um exemplo de código para criar um WebSocket em Golang: ``` package main import ( "log" "net/http" "github.com/gorilla/websocket" ) var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, } func websocketHandler(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, p, err := conn.ReadMessage() if err != nil { log.Println(err) return } log.Println(string(p)) err = conn.WriteMessage(messageType, p) if err != nil { log.Println(err) return } } } func main() { http.HandleFunc("/websocket", websocketHandler) log.Fatal(http.ListenAndServe(":8080", nil)) } ``` Este exemplo cria um servidor HTTP que escuta na porta 8080 e lida com conexões WebSocket na rota "/websocket". Quando uma conexão WebSocket é estabelecida, o servidor lê as mensagens recebidas do cliente e as envia de volta para o cliente.

Essa resposta te ajudou?

0
Dislike0
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar essa resposta. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!