mirror of https://github.com/gorilla/websocket.git
![]() **Summary of Changes** 1. Add an example that uses the write buffer pool The loop process of the websocket connection is inner the http handler at existing examples, This usage will cause the 8k buffer(4k read buffer + 4k write buffer) allocated by net.http can't be GC(Observed by heap profiling, see picture below) . The purpose of saving memory is not achieved even if the WriteBufferPool is used. In example bufferpool, server process websocket connection in a new goroutine, and the goroutine created by the net.http will exit, then the 8k buffer will be GC. ![heap](https://user-images.githubusercontent.com/12793501/148676918-872d1a6d-ce10-4146-ba01-7de114db09f5.png) Co-authored-by: hakunaliu <hakunaliu@tencent.com> Co-authored-by: Corey Daley <cdaley@redhat.com> |
||
---|---|---|
.circleci | ||
.github | ||
examples | ||
.gitignore | ||
AUTHORS | ||
LICENSE | ||
README.md | ||
client.go | ||
client_server_test.go | ||
client_test.go | ||
compression.go | ||
compression_test.go | ||
conn.go | ||
conn_broadcast_test.go | ||
conn_test.go | ||
doc.go | ||
example_test.go | ||
go.mod | ||
go.sum | ||
join.go | ||
join_test.go | ||
json.go | ||
json_test.go | ||
mask.go | ||
mask_safe.go | ||
mask_test.go | ||
prepared.go | ||
prepared_test.go | ||
proxy.go | ||
server.go | ||
server_test.go | ||
tls_handshake.go | ||
tls_handshake_116.go | ||
util.go | ||
util_test.go | ||
x_net_proxy.go |
README.md
Gorilla WebSocket
Gorilla WebSocket is a Go implementation of the WebSocket protocol.
Documentation
- API Reference
- Chat example
- Command example
- Client and server example
- File watch example
- Write buffer pool example
Status
The Gorilla WebSocket package provides a complete and tested implementation of the WebSocket protocol. The package API is stable.
Installation
go get github.com/gorilla/websocket
Protocol Compliance
The Gorilla WebSocket package passes the server tests in the Autobahn Test Suite using the application in the examples/autobahn subdirectory.