Есть ли способ проверить, что буфер чтения остался? - PullRequest
0 голосов
/ 11 марта 2020

Я занимаюсь разработкой веб-сокета с epoll.

ссылка: https://github.com/eranyanay/1m-go-websockets/blob/master/3_optimize_ws_goroutines/server.go

Один раз считывается в conn.ReadMessage () при срабатывании события epoll.

Но если есть два пакета websocket, conn.ReadMessage () не читает все пакеты. только один пакет читается.

Как проверить, остались ли в буферах оставшиеся байты после conn.ReadMessage ()? для вызова conn.ReadMessage до тех пор, пока буфер не опустеет.

Значение по умолчанию для epoll: Уровень срабатывает, но событие вызывается только один раз. если он вызывает conn.ReadMessage () только один раз, то epoll не срабатывает, даже если байты остаются в буфере.

...