消息服务
简介#
Blaze Client使bot具有了Websocket的能力,可以直接与Mixin Messenger的消息服务连接, 使之可以与Mixin Messenger上的用户进行实时的消息交互。- 同时也会接收
ack、conversation、transfer的消息,这些消息将在后文中逐步提到。 Blaze Client继承自Client类,因此也具有了Client类的所有功能。
提示
普通用户给机器人发的消息,超过一个周没有接收的消息,则会被 Mixin Messenger 服务端丢弃。
1. 创建 websocket 连接#
const { BlazeClient } = require('mixin-node-sdk');
let client = new BlazeClient( { client_id: '', session_id: '', pin_token: '', private_key: '', pin: '', }, { parse: true });tip
- 第一个参数为
keystore - 第二个参数可选,介绍如下
| 参数 | 类型 | 介绍 |
|---|---|---|
| parse | boolean | 是否将 data 解析为明文 |
| syncAck | boolean | 是否在接收到用户的消息,处理完后自动 ack |
TIPS:
- data 默认为
base64编码,如果需要解析为明文,需要将parse设置为true- 默认是需要手动调用
ack方法,将消息标记为已读,如果设置了syncAck为true,则会在接收到用户的消息,处理完后自动 ack. 具体方法参见
2. 使用 client.loopBlaze 来接收消息#
client.loopBlaze({ async onMessage(msg) { console.log(msg); }, async onAckReceipt(msg) { console.log(msg); }, async onTransfer(msg) { console.log(msg); }, async onConversatioin(msg) { console.log(msg); },});| 参数 | 必选 | 介绍 |
|---|---|---|
| onMessage | ✅ | 接受到的所有消息 |
| onAckReceipt | ❌ | 可选,接收到的 ack 消息 |
| onTransfer | ❌ | 可选,接收到的 转账 消息 |
| onConversatioin | ❌ | 可选,接收到的 群聊相关 消息 |
当不指定 onAckReceipt、onTransfer、onConversatioin 时,所有相关的消息都会走 onMessage。