@magnet-fe/magnet-im-lib
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

使用

  • 访问融云 Web SDK 开发指南
  • 根据文档添加 2.3.3 版 SDK 到项目中,如需使用新版本,需要更新本项目内的 .d.ts 文件
  • 安装 @private/magnet-im-lib 并使用
  • 当使用 Emoji 时, 需要引入融云 Emoji 库 文档
  • 官方没有提供 Emoji 的 .d.ts 文件,当前版本 vendor/RongEmoji-xx.d.ts 基于 2.2.7 版本编写,使用新版本时需要更新此文件

开发

初始化

import { MagnetIM, MessageTypes } from '@private/magnet-im-lib';

// 配置参数参考文档,包含认证信息和收消息的 Listener
// 可以通过返回 Promise 实现同步的连接后(onConnect)后执行特定操作, 例如:
function initSomething () {
    return new Promise((resolve, reject) => {
        new MagnetIM({
            ...你的配置...,
            Listener: {
                ...其他Listener...,
                onConnect (userInfo) {
                    // 做点你想做的事
                    resolve(userInfo);
                }
            }
        });
    });
}

await initSomething();
await joinSomeGroup();

发送消息

let message = new RongIMLib.TextMessage({
    content: 'Hello World',
    user: userInfoVariable
});

let msgResponse = await MagneIM.instance.sendMessage({
    conversationType: RongIMLib.ConversationType.CHATROOM,
    targetID: 'abcdef'.
    messageContent: message,
    onBeforeListener (messageId) {
        // 这里会在消息发送之前会触发,可以自己制造一个假数据放在 UI 上展示
    }
});

// 消息发送成功后, msgResponse 是服务端返回的消息对象,可以用于替换上面的假数据,
// 需要做异常处理,可能会遇到发送失败的情况。

发送磁场自定义的消息类型

具体可用消息类型参考文档

import { MessageTypes } from '@private/magnet-im-lib'

let message = new MessageTypes.QuestionMessage({
    type: MessageTypes.IQuestionMessageContentType.QuestionCreate // 提问,
    question: '你好吗? 我不好'
    user: // 在这里传入用户信息, 见文档内的 types/BaseMessage 中的 IUserInfo
})

/**
 * 创建消息时应包含的字段可以参考文档的 types/MagnetMessage 中的 I**MessageContent 。
 * 除了只接收不发送的 NotificationMessage 以外,所有的消息结构都是 I**MessageContent extends IBaseMessageContent ,
 * 每条消息都应该包含 User 信息。
 */

Readme

Keywords

none

Package Sidebar

Install

npm i @magnet-fe/magnet-im-lib

Weekly Downloads

0

Version

1.1.0

License

ISC

Unpacked Size

959 kB

Total Files

51

Last publish

Collaborators

  • handylee
  • ysh_no1
  • jasonheylon