#post #post-requests #sse #event-stream #http-post #pub-sub #http

app postsse

简单的HTTP服务器,允许通过GET请求(作为text/event-stream SSE)订阅数据,并通过POST请求发送数据

1个不稳定版本

0.1.0 2022年10月24日

#761HTTP服务器

MIT/Apache

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'

另请参阅

依赖关系

~7–16MB
~204K SLoC