mirror of
https://github.com/codex-storage/nim-websock.git
synced 2025-02-08 16:55:19 +00:00
Since #109, there can be only one concurrent user of recvMsg. So in case someone is already reading, better to readFrames
Websocket for Nim
This is an implementation of Websocket protocol for Nim. nim-websock have both client and server in regular ws and wss(secure) mode.
It also pass all autobahn tests Autobahn summary report.
Building and testing
Install dependencies:
nimble install -d
Starting HTTP server:
nim c -r examples/server.nim
Testing Server Response:
curl --location --request GET 'http://localhost:8888'
Testing Websocket Handshake:
curl --include \
--no-buffer \
--header "Connection: Upgrade" \
--header "Upgrade: websocket" \
--header "Host: example.com:80" \
--header "Origin: http://example.com:80" \
--header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \
--header "Sec-WebSocket-Version: 13" \
http://localhost:8888/ws
Roadmap
- Framing
- Text Messages
- Binary Messages
- Pings/Pongs
- Reserved Bits
- Opcodes
- Non-control Opcodes
- Control Opcodes
- Fragmentation
- UTF-8 Handling
- Close Handling
- Basic close behavior
- Close frame structure
- Payload length
- Valid close codes
- Invalid close codes
- Integrate Autobahn Test suite.
- WebSocket Compression
- WebSocket Extensions
- Performance
Description
Languages
Nim
100%