@medlinker/im-sdk
v0.7.0
Published
> TODO: description
Downloads
19
Readme
@medlinker/im-sdk
sdk 封装参考了
koa
的中件机制,当接收到服务端推送过来的一个websocket
消息时,依次该消息会经过一系列的中间件最终将消息处理为一个对象供视图进行使用,sdk 内部已经集成了部分必要的中间件(详见:./src/middlewares 文件夹)
本 sdk 有一个配套的组件库(@medlinker/im-components)开箱即用,如果样式不能满足需要,也可以自定义组件,组件如何封装没有统一要求,可以参考@medlinker/im-components
使用
- 首先需要进行业务登录
初始化 im 会使用.medlinker.com 域名下 cookie 进行登录,如果没有提前登陆 im 会初始化失败
- 初始化 im 实例
const im = new MedIm(
{
type: ConversationType.Group,
from: {
// 在步骤0中登陆的用户id
id: loginUserId,
reference: Reference.medlinker,
},
// 如果是群聊
group: {
id: groupId,
},
},
{
// 传入当前的环境的域名
imApi: '//im-api-qa.medlinker.com',
imGate: '//im-wss-qa.medlinker.com/gate',
}
);
- 监听对应的事件
im.on(MedImEvent.sdkReady, () => {
// im已经初始化完成,可以在这里拉取历史消息等
});
im.on(MedImEvent.receiveMessage, (message) => {
// 接受到服务端推送的消息时调用
console.log(message);
});
- 发送消息
// 3.1 创建对应消息的payload
const textPayload = createTextPayload({
content: '发送的文本信息',
});
// 3.2 调用im实例上的createMessage,这个会使用初始化时候传入的登录用户和接受对象创建一个消息
const message = im.createMessage({
text: textPayload,
});
// 3.3 调用im实例上的send方法,将消息发送出去
im.send(message).then((res) => {
if (res) {
// 发送成功
} else {
// 发送失败会返回null
}
});