@@ -113,8 +113,6 @@ which makes it easy to use correctly. Not only is the API simpler, the implement
113
113
only 1700 lines whereas gorilla/websocket is at 3500 lines. That's more code to maintain,
114
114
more code to test, more code to document and more surface area for bugs.
115
115
116
- The future of gorilla/websocket is also uncertain. See [ gorilla/websocket #370 ] ( https://github.com/gorilla/websocket/issues/370 ) .
117
-
118
116
Moreover, nhooyr/websocket has support for newer Go idioms such as context.Context and
119
117
also uses net/http's Client and ResponseWriter directly for WebSocket handshakes.
120
118
gorilla/websocket writes its handshakes to the underlying net.Conn which means
@@ -123,7 +121,7 @@ it has to reinvent hooks for TLS and proxies and prevents support of HTTP/2.
123
121
Some more advantages of nhooyr/websocket are that it supports concurrent writes and
124
122
makes it very easy to close the connection with a status code and reason.
125
123
126
- The ping API is also much nicer. gorilla/websocket requires registering a pong handler on the Conn
124
+ The ping API is also nicer. gorilla/websocket requires registering a pong handler on the Conn
127
125
which results in awkward control flow. With nhooyr/websocket you use the Ping method on the Conn
128
126
that sends a ping and also waits for the pong.
129
127
@@ -132,8 +130,8 @@ reuses message buffers out of the box if you use the wsjson and wspb subpackages
132
130
As mentioned above, nhooyr/websocket also supports concurrent writers.
133
131
134
132
The only performance con to nhooyr/websocket is that uses one extra goroutine to support
135
- cancellation with context.Context and the net/http client side body upgrade.
136
- This costs 2 KB of memory which is cheap compared to simplicity benefits.
133
+ cancellation with context.Context. This costs 2 KB of memory which is cheap compared to
134
+ simplicity benefits.
137
135
138
136
### x/net/websocket
139
137
0 commit comments