shad-go/wscat
2022-04-13 22:39:34 +03:00
..
main.go go fix old build tags. 2022-03-15 23:49:56 +03:00
main_test.go [wscat] Try increasing timeout. 2022-03-31 18:25:39 +03:00
README.md [wscat] Update public echo server; add link to gorilla/websocket; 2022-04-13 22:39:34 +03:00

wscat

wscat - примитивный аналог npm пакета wscat.

Websocket - это двусторонний канал поверх tcp. wscat - это websocket клиент.

wscat принимает на вход единственный аргумент -addr - адрес websocket сервера. После подключения программа начинает читать с stdin'а и отправлять пользовательские строки на сервер, печатая все сообщения от сервера в stdout.

Клиент должен обрабатывать SIGINT и SIGTERM и плавно завершаться с кодом 0, дожидаясь горутин. Для этого может пригодиться context.

Обратите внимание на то, что exit code go run - это не exit code исполняемого файла.

Пример

Публичный echo сервер:

✗ $GOPATH/bin/wscat -addr ws://ws.ifelse.io
abc
abcdef
def^C2022/04/13 22:23:42 received signal interrupt
✗ echo $?
0

Ссылки

  1. websocket: https://en.wikipedia.org/wiki/WebSocket
  2. gorilla/websocket: https://pkg.go.dev/github.com/gorilla/websocket
  3. signal shutdown: https://p.go.manytask.org/06-http/lecture.slide#20