消息服务
#
简介Blaze Client
使bot
具有了Websocket
的能力,可以直接与Mixin Messenger
的消息服务连接, 使之可以与Mixin Messenger
上的用户进行实时的消息交互。- 同时也会接收
ack
、conversation
、transfer
的消息,这些消息将在后文中逐步提到。 Blaze Client
继承自Client
类,因此也具有了Client
类的所有功能。
提示
普通用户给机器人发的消息,超过一个周没有接收的消息,则会被 Mixin Messenger
服务端丢弃。
websocket
连接#
1. 创建 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. 具体方法参见
client.loopBlaze
来接收消息#
2. 使用 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
。