shad-go/wscat/README.md

34 lines
1.3 KiB
Markdown
Raw Normal View History

2020-04-04 02:11:27 +00:00
## wscat
wscat - примитивный аналог npm пакета [wscat](https://www.npmjs.com/package/wscat).
2021-03-30 23:39:42 +00:00
Websocket - это двусторонний канал поверх tcp. wscat - это websocket клиент.
2020-04-04 02:11:27 +00:00
wscat принимает на вход единственный аргумент `-addr` - адрес websocket сервера.
После подключения программа начинает читать с stdin'а и отправлять пользовательские строки на сервер,
печатая все сообщения от сервера в stdout.
2022-03-06 02:06:00 +00:00
Клиент должен обрабатывать SIGINT и SIGTERM и плавно завершаться с кодом 0, дожидаясь горутин.
2020-04-04 02:11:27 +00:00
Для этого может пригодиться [context](https://golang.org/pkg/context/).
Обратите внимание на то, что exit code `go run` - это не exit code исполняемого файла.
2020-04-04 03:02:44 +00:00
## Пример
2020-04-04 02:11:27 +00:00
Публичный echo сервер:
```
✗ $GOPATH/bin/wscat -addr ws://echo.websocket.org
abc
abcdef
def^C2020/04/04 05:01:32 received signal interrupt
```
```
✗ echo $?
0
```
## Ссылки
1. websocket: https://en.wikipedia.org/wiki/WebSocket
2. signal shutdown: https://p.go.manytask.org/06-http/lecture.slide#20