一个为其他
MCDR
插件提供WebSocket
服务的 API,仅在MCDR 1.0
及以上版本运行
该插件目前还在测试,欢迎 issue
首先,你需要将 WebsocketAPI.py
和 websocket_api
目录 放入 plugin
目录下
然后,在 PLUGIN_METADATA
中添加该 API 的依赖
{
// ...
"dependencies": {
"mcdreforged": ">=1.0.0"
}
// ...
}
引入 API 实例并使用 register
方法注册你的插件事件,并得到一个接口
websocket_api = server.get_plugin_instance('websocket_api')
interface = websocket_api.register(event_name, event_handler)
注册一个事件以供 WebSocket 交互
event_name
你要注册的事件名(推荐使用插件 id)
event_handler
websocket 客户端触发该事件的回调函数
force
是否强制注册。如果之前有注册过该事件但未销毁,可使用 force = True
来强制覆盖
如果该事件之前注册过,且未使用 force = True
强制覆盖,则返回 None
。否则,将返回一个可供调用的接口
注销一个之前注册过的事件
event_name
事件名
如果该事件之前注册过,则返回 True
。否则返回 False
将一条消息发送给某个连接客户端
client_id
客户端 id ,可从回调函数的参数中得到
message
发送的数据,该数据可以为字典,列表等可被 JSON 序列化的数据结构
如果发送成功,则返回 True
,否则,返回 False
将一条消息发送给所有连接的客户端
message
发送的数据,该数据可以为字典,列表等可被 JSON 序列化的数据结构
如果发送成功,则返回 True
,否则,返回 False
server
MCDR 的 server 接口,与 MCDR 事件回调函数的 server 参数一致
data
一个包括多个字段的字典
字段名 | 字段说明 |
---|---|
client | 客户端 id |
data | 客户端发送的数据 |
- 该数据需要进行 JSON 序列化处理
{
"type": "event",
"event": "{event_name}", // 事件名称
"data": "{data}" // 发送的数据
}