跳转到主要内容

符合SaltyRTC协议的信令服务器。

项目描述

CircleCI codecov PyPI Gitter

这是一个适用于Python 3.5+的SaltyRTC服务器实现,使用asyncio

注意

在Python 3不是默认Python运行时的机器上,您应该使用pip3而不是pip

先决条件

sudo apt-get install python3 python3-pip

我们建议使用venv创建一个隔离的Python环境

pyvenv venv

您可以通过运行此命令进入创建的虚拟环境venv

source venv/bin/activate

当虚拟环境处于活动状态时,使用pip安装的所有包都将安装到该环境中。

要取消激活虚拟环境,只需运行

deactivate

如果您想要更容易地处理您的虚拟环境,您还可以查看virtualenvwrapper

安装

如果您正在使用虚拟环境,请首先激活它。

通过以下命令安装模块:

pip install saltyrtc.server

依赖项 libnacl 将自动安装。但是,您可能需要安装 libsodium 以使 libnacl 正常工作。

命令行使用

脚本 saltyrtc-server 将自动安装,并为服务器提供命令行接口。

运行以下命令以查看详细的使用信息:

saltyrtc-server --help

所有命令行选项也可以作为环境变量使用,方法是在其前面加上 SALTYRTC_SERVER_ 和大写命令名称,然后是选项名称的大写。例如: SALTYRTC_SERVER_SERVE_PORT=8765

快速入门

生成一个新的 私有永久密钥

saltyrtc-server generate /path/to/permanent-key

运行以下命令在任何地址上以端口 8765 启动服务器

saltyrtc-server serve \
    -p 8765 \
    -tc /path/to/x509-certificate \
    -tk /path/to/key \
    -k /path/to/permanent-key

或者,通过环境变量提供选项

export SALTYRTC_SERVER_SERVE_PORT=8765 \
       SALTYRTC_SERVER_SERVE_TLSCERT=/path/to/x509-certificate \
       SALTYRTC_SERVER_SERVE_TLSKEY=/path/to/key \
       SALTYRTC_SERVER_SERVE_KEY=/path/to/permanent-key
saltyrtc-server serve

Docker

您还可以使用我们的 官方Docker镜像 来运行服务器

docker run \
    -v /path/to/cert-and-keys:/var/saltyrtc \
    -p 8765:8765
    -it saltyrtc/saltyrtc-server-python:<tag> serve \
    -p 8765 \
    -tc /var/saltyrtc/x509-certificate \
    -tk /var/saltyrtc/key \
    -k /var/saltyrtc/permanent-key

上述命令将服务器容器内的端口 8765 映射到宿主机的端口 8765

当然,也可以使用环境变量提供选项,如前所述。

贡献

如果您想为此项目做出贡献,应在可编辑的环境中安装项目的可选 dev 要求

git clone https://github.com/saltyrtc/saltyrtc-server-python.git
cd saltyrtc-server-python
pip install -e .[dev]

在创建pull请求之前,建议运行以下命令以检查代码风格违规(flake8)、优化导入(isort)、进行静态类型分析和运行项目测试

flake8 .
isort -rc .
MYPYPATH=${PWD}/stubs mypy saltyrtc examples
py.test

报告安全问题

请直接向以下联系人之一或两个报告安全问题

变更日志

5.0.1 (2019-09-09)

  • 修复另一个客户端断开连接时的异常

5.0.0 (2019-08-29)

  • 将Python版本要求提升到3.6.1

  • 升级依赖项

  • 修复导致路径重复的竞态条件

4.2.0 (2019-04-25)

  • 任务和作业处理的内部重构

4.1.1 (2019-04-09)

  • 修复意外取消任务循环的问题

4.1.0 (2019-04-04)

  • 允许将环境变量用作CLI参数替换
    • 现在,您可以使用 SALTYRTC_SERVER_TLSKEY=foo saltyrtc-server serve 替代 saltyrtc-server serve --tlskey=foo

  • 修复pyi文件中的导入顺序

4.0.1 (2019-01-24)

  • 将Python版本要求提升到3.5.3

  • 删除Python 3.5.2的替代方案

4.0.0 (2018-01-24)

重要:在升级之前,请确保您正在使用Python >= 3.5.3。

  • 放弃Python 3.4支持(主要)

  • 弃用CLI选项 -sc–sslcert-sk–sslkey。请使用 -tc–tlscert-tk–tlskey 代替。

  • 添加类型提示

  • 修复丢弃字符串消息

  • 修复正确验证接收到的客户端ID类型

  • 修复正确验证接收到的子协议

  • 修复握手过程中一个客户端断开另一个客户端时的竞态条件

  • 代码库清理

3.1.2 (2019-01-08)

  • 修复早期Python 3.5版本的导入

3.1.1 (2019-01-08)

  • 暂时禁用py.test中的弃用警告(请参阅 #90

3.1.0 (2019-01-07)

  • 事件回调参数现在始终需要提供一个 data 参数

3.0.1 (2019-01-02)

  • 修复将 timeout 关闭代码作为 int 传递给事件回调

3.0.0 (2018-12-18)

  • 当客户端未对ping消息做出响应时,请使用timeout关闭代码(3008)(重要)

  • 添加对Python 3.7的支持

  • 各种任务队列改进,使客户端处理更加稳健

  • 修复:当通过“drop-responder”删除响应者时,不要发送“断开连接”消息

  • 修复:防止发起者将消息转发到正在被删除的响应者客户端

  • 修复:关闭服务器时,不要接受新的连接

2.0.1 (2018-08-20)

  • 修复:防止创建具有相同路径字符串的两个路径实例

  • 改进日志消息

2.0.0 (2018-07-16)

重要:在升级之前,请确保您正在使用Python >= 3.4.4,并且您的客户端支持断开连接消息。

  • 添加对断开连接消息的支持(重要)

  • 修复在派发send-error时可能出现的消息顺序无效问题

  • 修复send-error消息中id字段值的问题

  • 修复一些潜在的竞争条件

1.0.2 (2017-11-15)

  • 修复:不要接受发起者的未加密“client-auth”消息

1.0.1 (2017-07-25)

1.0.0 (2017-03-24)

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

saltyrtc.server-5.0.1.tar.gz(68.4 kB 查看哈希值

上传时间:

构建分布

saltyrtc.server-5.0.1-py36.py37-none-any.whl(45.1 kB 查看哈希值

上传时间: Python 3.6 Python 3.7

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面