1.1.56 • Published 6 months ago

les-im-components v1.1.56

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

les-im-components

本组件用于连接Les的IM平台服务器,进行收发消息及相关功能的操作

npm install les-im-components

使用方法

import { LesPlatformCenter, LesConstants } from 'les-im-components';

//在需要连接的地方调用connect方法

//此处应注意,通过api登陆accountCenter获取id和token时,serviceId应为 les-im-{deviceId}
//例如deviceId为IOS,则serviceId应为 les-im-IOS,大小写敏感
//deviceId详见LesConstants.IMDevices
LesPlatformCenter.Inst.connect("websocket地址", userId, token, deviceId).then(() => {
    //连接成功的处理
  }).catch(code => {
    //连接错误,code为错误代码
    //具体代码查看LesConstants.ErrorCodes
  })
 

LesPlatformCenter.IMFunctions 下的所有方法是IM相关功能实现,具体使用方法详见注释.

//例如登录后设置im用户名

const name = "起个名字";

LesPlatformCenter.IMFunctions.setName(name).then(nameInfo => {
      console.log(`名称设置成功:${nameInfo.name}#${nameInfo.tag}`)
    }).catch(code => {
      //错误处理
      //code为错误代码
      //具体代码查看LesConstants.ErrorCodes
    })


//设置用户状态

const state = LesConstants.IMUserState.Busy;

LesPlatformCenter.IMFunctions.setState(state).then(code => {
        //设置成功
    }).catch(code => { 
        //错误处理
        //code为错误代码
    })

LesPlatformCenter.IMListeners 用于设置服务器通知消息处理函数,具体的函数参数都在注释中写明了

//例如 监听用户状态变化
//当用户状态发生变化时,会回调这个接口,只能监听到好友的状态变化,例如上下线,切换为忙碌状态等
LesPlatformCenter.IMListeners.onIMUserStateChanged = (user, onlineState, state) => {
    //user -- 用户信息
    //onlineState -- 当前在线状态 IMUserOnlineState
    //state -- 当前状态 IMUserState

    //...相应处理
};

关于参数中的数据类

在处理回调或者调用某些功能时,返回的数据类型是一个类,例如给指定用户发送消息

LesPlatformCenter.IMFunctions.sendMessage(123, '测试消息').then(message=>{
    //此处的messsage是一个LesIMTimelineData 类型(方法注释中有标注)
}).cache(code=>{
    //错误处理...
})

所有LesIM开头的类型,都是对应的protobuf类型,可以在git上的项目 MetaVirus-ProtoBuf 中,protos/LesPlatform/Message或者protos/LesPlatform/Message/data目录中找到同名文件。

例如 LesIMTimelineData 类型,在项目的protos/LesPlatform/Message/data中,可以找到 LesIMTimelineData.proto文件

文件定义如下:

message PBLesIMTimelineData {
    optional int64 timelineId = 1;
    optional int64 messageId = 2;
    optional int64 senderId = 3;
    optional int64 recipientId = 4;
    optional int32 messageType = 5;
    optional int64 groupId = 6;
    optional int64 timestamp = 7;
    optional int32 contentType = 8; 
    optional string content = 9;
}

在javascript中,可以直接读取变量值

例如发送消息方法

LesPlatformCenter.IMFunctions.sendMessage(123, '测试消息').then(message=>{
    //此处的messsage是一个LesIMTimelineData 类型(方法注释中有标注)
//类型中的成员变量,都可以通过 get + protobuf定义文件中的名称 进行获取

//例如 protobuf 文件中定义了 timelineId 变量
//需要注意的是 protobuf 中定义的变量名,除了首字母大写,其他都是小写
//获取timelineId变量值的方法名就是  get + Timelineid ()
const timelineId = message.getTimelineid();
const senderId = message.getSenderid();
const contentType = message.getContenttype();
const content = message.getContent();

})

1.1.56

6 months ago

1.1.55

6 months ago

1.1.54

6 months ago

1.1.53

6 months ago

1.1.29

7 months ago

1.1.52

6 months ago

1.1.30

7 months ago

1.1.51

6 months ago

1.1.50

6 months ago

1.1.34

7 months ago

1.1.33

7 months ago

1.1.32

7 months ago

1.1.31

7 months ago

1.1.38

7 months ago

1.1.37

7 months ago

1.1.36

7 months ago

1.1.35

7 months ago

1.1.39

7 months ago

1.1.41

7 months ago

1.1.40

7 months ago

1.1.45

6 months ago

1.1.44

6 months ago

1.1.43

6 months ago

1.1.42

6 months ago

1.1.49

6 months ago

1.1.48

6 months ago

1.1.47

6 months ago

1.1.46

6 months ago

1.1.10

9 months ago