[**RongIMLib**](../README.md) *** [RongIMLib](../globals.md) / registerMessageType # Function: registerMessageType() > **registerMessageType**\<`T`\>(`messageType`, `isPersited`, `isCounted`, `searchProps?`, `isStatusMessage?`): (`content`) => [`BaseMessage`](../classes/BaseMessage.md)\<`T`\> 注册自定义消息 ## Type Parameters ### T `T` ## Parameters ### messageType `string` 消息类型 ### isPersited `boolean` 是否存储 ### isCounted `boolean` 是否计数 ### searchProps? `string`[] 可搜索的属性,web 端无需设置,搜索字段值设置为数字时取值范围为 (-Math.pow(2, 64), Math.pow(2, 64)) 且为整数 ### isStatusMessage? `boolean` 是否状态消息,状态消息不计数,不存储,接收方在线时才能收到 ## Returns 返回一个 [BaseMessage](../classes/BaseMessage.md) 类型的构造函数 (`content`) => [`BaseMessage`](../classes/BaseMessage.md)\<`T`\> ## Description 注册自定义消息,用于定义自定义消息的类型,会影响消息的发送和接收 **注意**: 1. 注册自定义消息代码必须在发送、接收该自定义消息之前 2. 推荐将所有注册自定义消息代码放在 init 方法之后,connect 方法之前 3. 注册的消息类型名,必须多端一致,否则消息无法互通 4. 请勿使用 RC: 开头的类型名,以免和 SDK 默认的消息名称冲突,自定义消息的消息类型名如和 SDK 默认的消息类型名相同以 SDK 默认的消息定义名为准 5. 需要再 connect 之前调用防止手消息行为异常 ## Example ```ts const messageType = 'CustomMessage'; const isPersited = true; const isCounted = true; const searchProps = ['content']; // 搜索字段 const isStatusMsg = false; const CustomMessage = RongIMLib.registerMessageType(messageType, isPersited, isCounted, searchProps, isStatusMsg); ```