7个版本

0.2.2 2024年1月20日
0.2.1 2023年11月19日
0.1.5 2023年8月9日
0.1.4 2023年5月7日
0.1.2 2022年11月5日

#124 in WebSocket

Download history 107/week @ 2024-03-07 9/week @ 2024-03-14 11/week @ 2024-03-28 1/week @ 2024-04-04

每月51次下载

Apache-2.0

90KB
2K SLoC

ScaleSocket

Build status Crates.io

ScaleSocket 是一个协作的WebSocket服务器和自动缩放器。它是构建多人后端的一种简单方式。

High level architecture diagram on ScaleSocket usage

关于

ScaleSocket 是一个命令行工具,允许您将脚本或二进制文件包装起来,并通过WebSocket协作地提供服务。客户端然后连接到具有唯一URL的 房间(也称为频道)(例如:wss://example.com/exampleroom)。连接到房间将生成包装的二进制文件的新进程。同一房间的后续连接将共享该进程。

文档

有关完整信息和安装说明,请参阅文档

功能

  • 在WebSocket客户端之间共享后端进程
  • 代理WebSocket流量到正常的TCP套接字或stdio
  • 将服务器消息路由到特定客户端
  • 服务静态文件
  • 将CGI 环境变量暴露给后端进程
  • OpenMetrics 兼容
  • 内置的房间列表服务器

快速入门

创建包含以下内容的文件 example.sh

#!/bin/bash
echo '{"message": "hello world"}'
sleep 1
echo '{"message": "goodbye"}'
sleep 1

使其可执行

$ chmod u+x example.sh

通过启动ScaleSocket服务器将其包装

$ scalesocket ./example.sh

然后连接到WebSocket端点,例如使用curl

$ curl --include \
       --no-buffer \
       --http1.1 \
       --header "Connection: Upgrade" \
       --header "Upgrade: websocket" \
       --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \
       --header "Sec-WebSocket-Version: 13" \
       https://127.0.0.1:9000/exampleroom
�{"message": "hello world"}�{"message": "goodbye"}%

有关更高级的用法和功能,请参阅用法

许可证

贡献

除非您明确声明,否则您提交给作品的任何贡献,根据Apache-2.0许可证定义,均应按上述方式许可,不附加任何额外条款或条件。

依赖关系

~12–23MB
~323K SLoC