WebSockets предоставляют полнодуплексный канал связи между клиентом и сервером, что позволяет обмениваться сообщениями в реальном времени после установления соединения. В Go для работы с WebSockets часто используется сторонняя библиотека gorilla/websocket. Установка библиотеки Для начала установите библиотеку gorilla/websocket, выполнив следующую команду: go get -u github.com/gorilla/websocket Создание WebSocket-сервера Давайте рассмотрим, как можно создать простой WebSocket-сервер, который принимает соединения и эхо-отправляет полученные сообщения обратно клиенту. package main
import (
"fmt"
"net/http"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
return true // Разрешить соединения от любого источника
},
}
func echoHandler(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil) // Обновляем HTTP-соединение до WebSocket-соединения
if err != nil {