支持channels/users通信的Websocket服务器
项目描述
Channelstream
这是一个基于Websocket的实时通信服务器,您的应用程序通过简单的JSON REST API与它通信。
更多信息请访问 http://channelstream.org。
安装和设置
从github获取源代码并执行
YOUR_PYTHON_ENV/bin/pip install channelstream
生成新的配置
YOUR_PYTHON_ENV/bin/channelstream_utils make_config -o config.ini
启动服务器
YOUR_PYTHON_ENV/bin/channelstream -i config.ini
演示
演示应用程序存放在 https://github.com/Channelstream/channelstream_demos 仓库。
它们展示了实时应用中常用的常见模式。
安全性和通信模型
Channelstream提供了一个API资源管理器,您可以使用它与各种端点交互,默认情况下可在 http://127.0.0.1:8000/api-explorer 下访问。
要发送信息,客户端只与您的正常www应用程序交互。您的应用程序处理身份验证和从客户端处理消息,然后将它们作为签名消息传递给channelstream服务器进行广播。
websocket客户端 -> webapp(安全和转换在这里发生) -> 对socket服务器的REST调用 -> 向其他客户端广播
此模型易于实现、安全、易于扩展,并允许所有类型的语言/应用程序/工作队列与套接字服务器交互。
所有消息都需要用目标端点的HMAC进行签名:
import requests
from itsdangerous import TimestampSigner
signer = TimestampSigner(SERVER_SECRET)
sig_for_server = signer.sign('/connect')
secret_headers = {'x-channelstream-secret': sig_for_server,
'Content-Type': 'application/json'}
response = requests.post(url, data=json.dumps(payload),
headers=secret_headers).json()
数据格式和端点
有关端点的详细信息,请咨询API探索器(http://127.0.0.1:8000/api-explorer)。
一些示例
- /connect POST 将用户连接到服务器
- /subscribe POST 将连接订阅到新频道
- /unsubscribe POST 从频道中删除连接
- /user_state POST 设置特定用户的状态
- /message POST 向频道和/或用户发送消息
- /message DELETE 从历史记录中删除消息并发出更改
- /message PATCH 编辑历史记录中的现有消息并发出更改
- /channel_config POST 设置频道配置
- /info POST 返回频道信息
客户端API
- /ws GET 处理WebSocket连接
- /listen GET 处理长轮询连接
- /disconnect GET 永久从服务器删除连接
- /disconnect POST 永久从服务器删除连接
管理员API
- /admin/admin.json GET 为管理面板目的以JSON格式返回服务器信息
- /admin/admin.json POST 为管理面板目的以JSON格式返回服务器信息
对js客户端的响应
客户端的响应以包含对象的形式的列表的形式呈现。
示例
新消息 ::
{
"date": "2011-09-15T11:36:18.471862",
"message": MSG_PAYLOAD,
"type": "message",
"user": "NAME_OF_POSTER",
"channel": "CHAN_NAME"
}
存在信息 ::
{
"date": "2011-09-15T11:43:47.434905",
"message": {"action":"joined/parted"},
"type": "presence",
"user": "NAME_OF_POSTER",
"channel": "CHAN_NAME"
}
目前发出的消息类型包括:message
、message:edit
、message:delete
、presence
、user_state_change
。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
channelstream-0.7.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fbd82819ea58812ac92d68e9df9f7290f8a51846f3566876a1ad44b51b1d52ea |
|
MD5 | 0efbdffa80732c7f994a1bb581029b41 |
|
BLAKE2b-256 | 50fcf1a0dca94ea2fd05353e83ffed73009b564f3ec47b5ab0f6ef851844c5cc |