-
Notifications
You must be signed in to change notification settings - Fork 151
Open
Description
Hi all!
Run ws server on GO:
package main
import (
"net/http"
"github.com/gobwas/ws"
"github.com/gobwas/ws/wsutil"
)
func main() {
http.ListenAndServe(":4375", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
conn, _, _, err := ws.UpgradeHTTP(r, w)
if err != nil {
// handle error
}
go func() {
defer conn.Close()
for {
msg, op, err := wsutil.ReadClientData(conn)
if err != nil {
// handle error
}
err = wsutil.WriteServerMessage(conn, op, msg)
if err != nil {
// handle error
}
}
}()
}))
}
And then run test:
thor --amount 100 ws://curex.ll:4375/
Thor: version: 1.0.0
God of Thunder, son of Odin and smasher of WebSockets!
Thou shall:
- Spawn 4 workers.
- Create all the concurrent/parallel connections.
- Smash 100 connections with the mighty Mjölnir.
The answers you seek shall be yours, once I claim what is mine.
Connecting to ws://curex.ll:4375/
Online 152 milliseconds
Time taken 174 milliseconds
Connected 100
Disconnected 0
Failed 100
Total transferred 0B
Total received 0B
Durations (ms):
min mean stddev median max
Handshaking 15 28 7 25 48
Latency NaN NaN NaN NaN NaN
Percentile (ms):
50% 66% 75% 80% 90% 95% 98% 98% 100%
Handshaking 25 27 32 33 40 44 47 48 48
Latency NaN NaN NaN NaN NaN NaN NaN NaN NaN
Received errors:
100x continuation frame cannot follow current opcode
But receive an error:
Failed 100
WS server works it's for shure. I tested him with client:
<script>
var ws = new WebSocket('ws://curex.ll:4375/');
ws.onmessage = function(evt) { alert(evt.data); };
ws.onopen = function (event) { ws.send('test!'); }
</script>
MrGru, PashaBorisyk and dev-sk-master
Metadata
Metadata
Assignees
Labels
No labels