本文介绍如何创建一个 IMCloud 微信小程序项目,实现即时通讯功能。
获取 AppID 和 Token,你可以通过阅读密钥说明了解更多 Token 相关信息。
完成小程序开发环境搭建
node(12.13.0 ≤ node 版本 ≤ 17.0.0,推荐使用 Node.js 官方 LTS 版本 16.17.0)
npm(版本与 node 版本匹配)
进入微信公众平台 -> </> 开发 -> 开发设置,将如下域名配到服务器域名里。
https://imapi.volcvideo.com;
wss://frontier-sinf.ivolces.com;
https://tos-lf-x.snssdk.com;https://tos-hl-x.snssdk.com;https://tos-nc2-slb2.bytecdn.cn;https://tos-nc2-slb1.bytecdn.cn;

获取 IM Cloud 微信小程序 包。
复制 im.min.js 到 项目 lib 目录中。
.
├── lib
│ ├── im.min.js
├── pages
│ ├── index
│ │ ├── ...
const { im_proto, BytedIM } = require('../../lib/im.min')
// SDK 调用代码...
javascript在页面组件中编写初始化代码。
// index.js
const { im_proto, BytedIM } = require('../../lib/im.min')
Page({
data: {
},
onLoad() {
const APP_ID = 666666; //你可以从控制台 https://console.volcengine.com/rtc/workplaceRTC 获取你创建的 AppId。
const DEFAULT_USER_ID = '10001'; //用户 ID,必须为 整数且大于 0。该 UserId 需要和生成 Token 的 Userid 保持一致。 关于 Token 鉴权,参看https://www.volcengine.com/docs/6348/291043。
const API_DOMAIN = 'https://imapi.volcvideo.com';
const FRONTIER_DOMAIN = 'wss://frontier-sinf.ivolces.com/ws/v2';
// 创建实例
const instance = new BytedIM(
{
appId: APP_ID,
userId: DEFAULT_USER_ID,
deviceId: DEFAULT_USER_ID,
apiUrl: API_DOMAIN,
frontierUrl: FRONTIER_DOMAIN,
debug: true, // 启用后在控制台打印详细调试信息,正式上线时建议关闭
token: "" //你可以在 IM 控制台 https://console.volcengine.com/rtc/workplaceRTC 获取临时 token。
},
);
// 发起初始化请求
instance.init().then(() => {
console.log('init success');
let conversationList = instance.getConversationList();
console.log(conversationList); //如果是新用户,没有会话,这里为空
for (let conv of conversationList) {
console.log(`${conv.id} ${conv.coreInfo.name}`);
}
}).catch((err) => {
console.log('init fail', err)
});
},
})
javascript运行效果:
绑定后当消息数据有更新(增删查改)时,都会调用传入的回调函数。
instance.event.subscribe(IMEvent.MessageUpsert, (message) => {
console.log('消息更新 MessageUpsert', message.conversationId, message.content);
});
javascript假设当前用户 ID 为 10009,往 ID 为 10001 的用户发送 hello。
async function send() {
/* 如果之前没有对话过,需要先创建会话 */
const result = await instance.createConversation({
participants: ['10001']
});
const conversation = result.payload;
const message = await instance.createTextMessage({
conversation,
content: 'hello'
});
const resp = await instance.sendMessage({
message
});
console.log('发送成功', resp)
}
javascript执行后发送方(10009)视角:
接收方(10001)视角:
这样就完成了基本的消息收发。
let conversationList = instance.getConversationList();
console.log(conversationList);
javascript