2020-12-08 10:15:21 +00:00
|
|
|
# Websocket for Nim
|
2020-12-01 12:43:59 +00:00
|
|
|
|
2021-05-21 02:13:09 +00:00
|
|
|
![Github action](https://github.com/status-im/nim-ws/workflows/nim-ws%20CI/badge.svg)
|
|
|
|
|
2020-12-01 12:43:59 +00:00
|
|
|
We're working towards an implementation of the
|
|
|
|
[Websocket](https://tools.ietf.org/html/rfc6455) protocol for
|
|
|
|
[Nim](https://nim-lang.org/). This is very much a work in progress, and not yet
|
|
|
|
in a usable state.
|
|
|
|
|
|
|
|
Building and testing
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Install dependencies:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
nimble install -d
|
|
|
|
```
|
|
|
|
|
2020-12-08 10:15:21 +00:00
|
|
|
Starting HTTP server:
|
2020-12-01 12:43:59 +00:00
|
|
|
|
|
|
|
```bash
|
2020-12-08 10:15:21 +00:00
|
|
|
nim c -r test/server.nim
|
|
|
|
```
|
|
|
|
|
|
|
|
Testing Server Response:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
curl --location --request GET 'http://localhost:8888'
|
2020-12-01 12:43:59 +00:00
|
|
|
```
|
2020-12-08 12:49:22 +00:00
|
|
|
|
|
|
|
Testing Websocket Handshake:
|
|
|
|
```bash
|
|
|
|
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
|
|
|
|
```
|