
全程用爱发电、花了很多时间肝代码,所以厚着脸皮,来求一波 star, issue
| Server | Connection | Send Speed(msg/s) | Payload size | Download / Upload Bandwidth(Mbps) |
|---|---|---|---|---|
| gws | 200 | 20000 | 2.34KiB | 11614.442↓ 11556.101↑ |
| gorilla | 200 | 20000 | 2.34KiB | 4244.398↓ 4188.711↑ |
| gws | 2000 | 500 | 2.34KiB | 7906.156↓ 7914.797↑ |
| gorilla | 2000 | 500 | 2.34KiB | 4263.545↓ 4260.077↑ |
| gws | 5000 | 50 | 2.34KiB | 4941.188↓ 4943.667↑ |
| gorilla | 5000 | 50 | 2.34KiB | - |
| gws | 10000 | 10 | 2.34KiB | 1980.124↓ 1977.561↑ |
| gorilla | 10000 | 10 | 2.34KiB | 1972.556↓ 1979.981↑ |
| gws | 10000 | 20 | 2.34KiB | 3952.788↓ 3959.341↑ |
| gorilla | 10000 | 20 | 2.34KiB | - |
-means exception
go get -v github.com/lxzan/gws@latest type Event interface { OnOpen(socket *Conn) OnError(socket *Conn, err error) OnClose(socket *Conn, code uint16, reason []byte) OnPing(socket *Conn, payload []byte) OnPong(socket *Conn, payload []byte) OnMessage(socket *Conn, message *Message) } package main import ( "fmt" "github.com/lxzan/gws" "net/http" ) func main() { var cOnfig= &gws.Config{ CompressEnabled: true, CheckTextEncoding: true, MaxContentLength: 32 * 1024 * 1024, ResponseHeader: http.Header{"Server": []string{"gws"}}, } var handler = new(WebSocket) http.HandleFunc("/connect", func(writer http.ResponseWriter, request *http.Request) { socket, err := gws.Accept(writer, request, handler, config) if err != nil { return } socket.Listen() }) _ = http.ListenAndServe(":3000", nil) } type WebSocket struct{} func (c *WebSocket) OnClose(socket *gws.Conn, code uint16, reason []byte) { fmt.Printf("onclose: code=%d, payload=%s\n", code, string(reason)) } func (c *WebSocket) OnError(socket *gws.Conn, err error) { fmt.Printf("onerror: err=%s\n", err.Error()) } func (c *WebSocket) OnOpen(socket *gws.Conn) { println("connected") } func (c *WebSocket) OnPing(socket *gws.Conn, payload []byte) { fmt.Printf("onping: payload=%s\n", string(payload)) socket.WritePong(payload) } func (c *WebSocket) OnPong(socket *gws.Conn, payload []byte) {} func (c *WebSocket) OnMessage(socket *gws.Conn, message *gws.Message) { socket.WriteMessage(message.Typ(), message.Bytes()) message.Close() } docker run -it --rm \ -v ${PWD}/config:/config \ -v ${PWD}/reports:/reports \ crossbario/autobahn-testsuite \ wstest -m fuzzingclient -s /config/fuzzingclient.json 1 tiedan 2023 年 1 月 12 日 有个个人小项目,打算用一下试试 |
3 lizhenda 2023 年 1 月 13 日 已 star ,正好在用 gorilla ,初步看 gws 还是蛮简洁的。 |