1个不稳定版本
0.1.0 | 2022年10月24日 |
---|
#761 在 HTTP服务器
11KB
141 行
postsse
HTTP POST和服务器端事件连接器,允许使用GET和POST请求实现简单的发布-订阅方案。
功能
- 监听HTTP 1.1和HTTP 2连接,并在任意URL上处理GET或POST请求。
- 将每个POST的消息广播到每个正在进行的GET请求作为SSE事件。
- 每个URL路径都有一个单独的广播域。
这旨在用作构建模块,特别是在开发或原型设计期间。
限制
- 如果接收器读取消息较慢,则消息会被丢弃。如果您想调整缓冲区大小或其他策略(无限缓冲或减慢发送器),请通过GitHub问题提交功能请求。
- 无DoS抵抗。每个遇到的URL路径都将永久记住,没有对消息大小、路径数量或接收者数量的限制。
安装
从GitHub发行版下载预构建的可执行文件,使用源代码通过cargo install --path .
安装,或从crates.io使用cargo install postsse
安装。
示例
$ postsse 127.0.0.1:1234
$ curl -v http://127.0.0.1:1234/
* Trying 127.0.0.1:1234...
* Connected to 127.0.0.1 (127.0.0.1) port 1234 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1:1234
> User-Agent: curl/7.74.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< content-type: text/event-stream
< access-control-allow-origin: *
< transfer-encoding: chunked
< date: Mon, 24 Oct 2022 21:58:36 GMT
<
data: 123 | $ curl http://127.0.0.1:1234/ -d 123
|
data: qwerty | $ curl http://127.0.0.1:1234/ -d qwerty
|
data: ABC | $ curl http://127.0.0.1:1234/ \
data: DEF | --data-binary $'ABC\nDEF\n'
另请参阅
- https://github.com/vi/wsbroad - WebSocket模拟。如果需要,创建结合POST/SSE和WebSocket的发布-订阅组合并不困难。
依赖关系
~7–16MB
~204K SLoC