协议提供服务器
[内置]
最后更新于
[内置]
最后更新于
通过协议提供服务器间接对游戏服务器进行连接, 所有与游戏服务器的交互发生在协议提供服务器.
这意味着在MineChat客户端上只与协议提供服务器建立了连接, 你的所有的尝试与游戏服务器的交互都会交给协议提供服务器处理后转发给游戏服务器. 游戏服务器的消息会由协议提供服务器处理再由协议提供服务器回传给MineChat客户端.
名称 | 默认值 | 附加信息 |
---|---|---|
协议提供服务器 | 默认协议提供服务器 | 用于当前会话的协议提供服务器 |
连接账户 | 默认账户 | 用于当前会话的账户 |
显示名称 | Minecraft Server | 在服务器列表中显示的标题 |
地址 | 127.0.0.1 | 游戏服务器的地址 |
端口 | 19132 | 游戏服务器的端口 |
会话附加属性 | {} | 在创建会话时会在请求体中加入该内容, 优先级大于全局会话附加属性 |
名称 | 默认值 | 附加信息 |
---|---|---|
默认协议提供服务器 | 127.0.0.1:8873 | 默认用于会话的协议提供服务器 |
全局会话附加属性 | {} | 在创建会话时会在请求体中加入该内容 |
所有WS包消息体的结构都是:
name
将作为消息体的type
发送
obj
如果是JsonElement
将直接作为data
发送
obj
如果是String
, 将使用JsonParser.parseString()
尝试将字符串解析为JsonElement
; 如果解析失败将会直接将字符串作为data
发送
添加监听将会向协议提供服务器服务器发送type
为on
的包, data
为name
的内容
触发callback
时返回的是服务器消息体的data
内容 (类型为JsonElement
, 可能为null
)
协议提供服务器使用http, 使得可以让协议插件开发不局限于Jvm语言 你可以自行实现以下接口, 实现你自己的协议提供服务器!
你可以参考MineChat官方开发的协议提供服务器:
GET
http://<HOST>:<PORT>/info
用于获取当前协议提供服务器信息
GET
http://<HOST>:<PORT>/motd
当MineChat客户端无法直接获取游戏服务器motd时, 将请求该接口尝试交给协议提供服务器来获取游戏服务器的motd并返回
Name | Type | Description |
---|---|---|
host* | String | 游戏服务器地址 |
port* | Number | 游戏服务器端口 |
POST
http://<HOST>:<PORT>/session
只是带上配置尝试创建一个会话, 此时还未与游戏服务器连接
Name | Type | Description |
---|---|---|
host* | String | 游戏服务器地址 |
port* | Number | 游戏服务器端口 |
offline | Boolean | 是否是离线账户 (默认false) |
username | String | 用户名 (离线账户必须) |
在创建会话后, 插件将请求ws://<HOST>:<PORT>/session/<SESSION ID>
开启WS连接
客户端包
由客户端发出的包
服务端包
由服务端发出的包