自定义消息和 provider
自定义普通消息
1. 编写自定义普通消息的代码
自定义消息相关内容参考 IMLib 的自定义消息
示例代码
TypeScript
import { MessageTag, MessageContent, MessageFlag, JsonConverter } from '@rongcloud/imkit';
/**
* 消息标识
* @version 1.0.0
*/
export const CustomTextMessageObjectName = "RCD:TstMsg";
/**
* 自定义文本消息
*
*/
@MessageTag(CustomTextMessageObjectName, MessageFlag.Count)
export class CustomTextMessage extends MessageContent {
// 文本内容
content: string = '';
constructor() {
super();
}
encode(): string {
let map = super.encodeBaseData();
// 将文本内容放到字典
map.set('content', this.content)
return JsonConverter.stringifyFrom HashMap(map);
}
decode(contentString: string): void {
let hashMap = JsonConverter.parseToHashMap(contentString);
super.decodeBaseData(hashMap);
// 将文本内容从字典中解出
if (hashMap.get("content")) {
this.content = hashMap.get("content") as string;
}
}
getClassName(): string {
return CustomTextMessage.name
}
}
2. 将自定义普通消息注册给 IMLib
您需要在 SDK 初始化后,IM 连接之前将消息注册给 IMLib,才可以保证消息能够正常的收发。
TypeScript
let clazzList : List<MessageContentConstructor> = new List();
clazzList.add(CustomTextMessage);
IMEngine.getInstance().registerMessageType(clazzList);