Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gorilla WebSocket compared with golang.org/x/net/websocket

According Gorilla Websockets Project it is not possible to send pings and pongs using golang.org/x/net/websocket. At the same time, the following is on the project page of golang.org/x/net/websocket:

Package websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.

I am a little confused. golang.org/x/net/websocket implements RFC 6455 but can not send control frames (cancel, ping, pong) although this is specified in RFC 6455 - Section Control Frames

So what will happen if I use golang.org/x/net/websocket package. Will the connection abort after a timeout? In other words, how is it ensured here that the connection does not break off.

like image 605
dieter Avatar asked Feb 09 '23 15:02

dieter


1 Answers

According Gorilla Websockets Project it is not possible to send pings and pongs using golang.org/x/net/websocket

The Gorilla README says something different. It says that the golang.org/x/net package cannot send a ping or receive a pong. It does not say that the package will not send a pong.

The golang.org/x/net package automatically responds to a ping received from the peer by sending a pong to the peer, as does the Gorilla package. Both packages work correctly with a peer that's using ping and pongs to keep the connection alive.

An application that uses the golang.org/x/net/websocket package cannot employ pings and pongs to keep the connection alive. There's no way to send the ping. There's no way to detect that the pong was received.

like image 110
Bayta Darell Avatar answered Feb 13 '23 04:02

Bayta Darell