2015-07-07 4 views
2

Согласно Gorilla Websockets Project невозможно отправить пинг-понг и понг с помощью golang.org/x/net/websocket. В то же время, следующее на странице проекта golang.org/x/net/websocket:Gorilla WebSocket по сравнению с golang.org/x/net/websocket

Пакет WebSocket реализует клиент и сервер для протокола WebSocket, как указано в RFC 6455.

Я немного запутался. golang.org/x/net/websocket реализует RFC 6455, но не может посылать управляющие кадры (отменить, пинг, понг), хотя это указано в RFC 6455 - Section Control Frames

Так что же произойдет, если я использую golang.org/x/net/websocket упаковка. Будет ли соединение отменено после таймаута? Другими словами, как здесь обеспечивается, что соединение не прерывается.

ответ

7

По Gorilla WebSockets проекта не представляется возможным отправить пинги и Pongs с помощью golang.org/x/net/websocket

Gorilla README says что-то другое. В нем говорится, что пакет golang.org/x/net не может отправить пинг или получить понг. Он не говорит, что пакет не отправит понг.

Пакет golang.org/x/net автоматически отвечает на пинг, полученный от однорангового узла, отправив понг другу, как и пакет Gorilla. Оба пакета корректно работают со сверстниками, которые используют пинг и понг, чтобы поддерживать связь.

Приложение, использующее пакет golang.org/x/net/websocket, не может использовать пинг-понг и понг, чтобы поддерживать связь в сети. Невозможно отправить пинг. Невозможно обнаружить, что понг был получен.