Scaledrone Python:轻量级的实时消息推送客户端
Scaledrone Python:轻量级的实时消息推送客户端
ScaleDrone 是一家提供实时消息服务的平台,帮助开发者在 Web 和移动应用中集成实时通信能力。scaledrone-python 是其官方 Python API 客户端,对 REST API 做了封装。


这个库封装了 Scaledrone 平台的主要 REST 接口,支持消息发布、频道统计、用户列表查询等功能。开发者可以用它在 Python 后端向 Scaledrone 频道推送消息,或是查询当前在线用户和房间状态。接口返回的数据格式清晰,便于后续处理。
安装
通过 pip 直接安装:
pip install scaledrone
安装过程依赖 Python 的 requests 库,用于处理 HTTP 请求。如果环境中尚未安装 requests,pip 会在安装 scaledrone 时自动处理依赖。
初始化客户端
使用 Scaledrone 之前,需要在平台上创建一个频道,然后从控制台的频道页面获取 channel_id 和 secret_key。这两个参数分别标识了目标频道和验证身份,将它们传入 Scaledrone 类即可完成初始化:
from scaledrone import Scaledrone
drone = Scaledrone('channel_id', 'secret_key')
发布消息
向单个房间推送消息是最常用的操作。房间名由开发者自定义,消息内容可以是任意可被 JSON 序列化的 Python 数据结构,比如字典、列表等:
room = 'notifications'
message = {'foo': 'bar'}
response = drone.publish(room, message)
消息发布后,订阅了该房间的客户端会实时收到这条数据。
如果业务场景需要同时向多个房间广播同一条消息,也可以传入房间列表,无需多次调用:
rooms = ['room1', 'room2']
message = {'foo': 'bar'}
response = drone.publish(rooms, message)
查询频道统计
获取当前频道的在线用户数量:
response = drone.channel_stats()
print(response.json()) # {users_count: 10}
这个接口适合用于在管理后台展示实时在线人数,或是根据在线人数动态调整业务策略。
查询用户列表
获取所有房间的用户列表:
response = drone.members_list()
print(response.json()) # ["user1", "user2"]
获取某个房间内的用户:
response = drone.room_members_list('my-room')
print(response.json()) # ["user3", "user4"]
这两个接口可以用于展示在线用户,或是实现基于用户身份的权限控制逻辑。
查询房间列表
获取当前有用户的所有房间:
response = drone.rooms_list()
print(response.json()) # ["room1", "room2"]
获取所有房间及其用户成员的映射关系:
response = drone.all_room_members_list()
print(response.json()) # {"room1": ["user1", "user2"], "room2": ["user1"]}
这个接口一次性返回房间和用户的完整映射,适合用于后台管理或数据分析场景。
API 响应
所有接口返回的都是 Python requests 库的 Response 对象。这意味着开发者可以调用 .json() 方法直接解析 JSON 数据,也可以访问 status_code、headers 等标准属性来检查请求状态。
测试
项目源码中附带了一个 test.py 文件,运行即可执行测试:
python test.py
版本历史
0.2.0 版本实现了最新的 REST API 端点,发送数据格式改为 JSON。0.1.0 是初始版本。
这个库代码精简,接口设计直观,适合需要在 Python 后端集成 Scaledrone 实时消息服务的开发者。整体依赖少,接入成本低,能够快速实现服务端的消息推送能力。
现了最新的 REST API 端点,发送数据格式改为 JSON。0.1.0 是初始版本。
这个库代码精简,接口设计直观,适合需要在 Python 后端集成 Scaledrone 实时消息服务的开发者。整体依赖少,接入成本低,能够快速实现服务端的消息推送能力。
更多推荐


所有评论(0)