Практика WebSocket в Go
Дан путь /ws. Напишите полный
main.go: зарегистрируйте этот
путь, переведите запрос в канал сообщений
и запустите прослушивание на
127.0.0.1:8080.
Дано сообщение клиента:
clientText := "ping"
Напишите полный main.go с сервером
на /ws: после чтения текстового
кадра отправьте "echo: ping",
если байты совпали с clientText.
Клиент в том же файле шлет clientText
и печатает ответ.
Дан адрес канала:
url := "ws://127.0.0.1:8080/ws"
Напишите полный main.go только
для клиента: откройте url,
отправьте "hello" текстовым
кадром и закройте канал отложенным
вызовом. Сервер считайте уже запущенным
отдельно.
Дан следующий фрагмент сервера:
_, msg, err := conn.ReadMessage()
if err != nil {
return
}
out := append([]byte("echo: "), msg...)
Допишите отправку out текстовым
кадром и скажите, что увидит клиент,
если он прислал "go".
Дана карта клиентов под замком. Напишите
полный main.go: при каждом новом
канале на /ws добавляйте его
в карту и после чтения одного сообщения
рассылайте "all: " плюс текст
всем, кто в карте.
Дано сообщение:
note := []byte("bye")
Напишите полный main.go с одним
клиентом: отправьте note,
прочитайте ответ сервера, затем
отправьте служебный кадр закрытия
и вызовите Close на канале.