Я пишу сервер веб-сокетов в Go, который передает сообщения клиентам.Я использую SetWriteDeadline при каждой отправке, чтобы широковещательный цикл не зависал.
Мой вопрос: как мне интерпретировать ошибку из SetWriteDeadline?В частности, должен ли я предположить, что с этим конкретным клиентом что-то не так, и отменить регистрацию?Или это проблема на стороне сервера, которая возникла на этом клиенте?
После исследования SetWriteDeadline я обнаружил, что крайний срок для размещения сообщения на стороне стека TCP, не для клиента, чтобы получить сообщение.Поэтому, возможно, лучший способ сформулировать мой вопрос заключается в следующем: существует ли отдельный стек TCP для каждого клиента websocket (возможно, он имеет размер WriteBufferSize), или этот буфер совместно используется клиентами?В первом случае кажется, что я должен отменить регистрацию клиента при ошибке SetWriteDeadline, но не во втором случае.