utools 桌面挂件 live2D模块 扩展
通讯方式
使用 websocket
通讯
- 创建
websocket
链接
const ws = new WebSocket("ws://localhost:44446");
- 接收数据
ws.onmessage = function (event) {
const data = event.data
console.log(data);
};
- 发送数据
ws.send(data)
所有数据都采用json
的方式,需要发送数据之前JSON.stringify(data)
注册
- 使用默认创建的
live2d
使用默认的live2d
可以发送信息但是不能有定制化操作,而且使用默认的可能和很多插件所有相同的live2d
,主要可以发送信息
{
type: 'register',
mode: 'none', //
author: '', // 作者
desc: '', // 描述
code: '', // 自定义唯一的值,保证每次注册值都一样
}
- 使用定制
live2d
可定制聊天,可选按钮事件
{
type: 'register',
mode: 'new',
author: '', // 作者
desc: '', // 描述
code: '', // 自定义唯一的值,保证每次注册值都一样,
warmReminder: true/false // 可选 温馨提示 每30分钟发一句消息
btn1: { // 可选按钮一
trigger: '', // 触发事件后服务器 ws 发过来的标识符,
icon: '', // 按钮图标
},
btn2: { // 可选按钮二
trigger: '', // 触发事件后服务器 ws 发过来的标识符,
icon: '', // 按钮图标
},
btn3: { // 可选按钮三
trigger: '', // 触发事件后服务器 ws 发过来的标识符,
icon: '', // 按钮图标
},
header: { // 可选触摸头部
trigger: '', // 触发事件后服务器 ws 发过来的标识符,
},
body: { // 可选触摸身体
trigger: '', // 触发事件后服务器 ws 发过来的标识符,
},
}
注册服务端响应
成功
{
status: 200,
message: 'ok',
type: '',
type: 'register'
}
失败
{
status: 403,
message: '', // 可能情况 1.需要用户在 live2D 控制面板打开这项功能
type: 'register'
}
事件通知服务器响应
{
code: 200,
type: 'notice',
trigger: '' // 标识符
}
发送信息
{
code: '', // 注册时候code值
type: 'message',
message: '',
duration: '2000'// 毫秒(ms) 默认 2000
}
心跳包(未实现)
服务端 每 30 秒 向客户端发送一个心跳包
{
type:'heart',
message: ''
}
死亡包
客户端
{
code: '', // 注册时候code值
type: 'death'
}
live2d端
如果用户自己关闭 live2d
将自动发送这个包
{
type: 'death'
}
注意websocket的资源释放
异常
{
type: 'err',
message: '' //信息 连接已经挂了,请重新申请
}