自定义IM消息类型 - 时信魔方教程

本文介绍了如何使用时信魔方(Cube)的Plugin System实现自定义即时通信(IM)消息类型,包括文本消息和图片消息。通过定义消息负载中的`type`字段区分不同消息,如`text`表示文本消息,`image`表示图片消息。文章详细阐述了插件基础、自定义消息的创建、消息类型分类插件的实现以及注册插件的步骤,帮助开发者扩展Cube的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在进行应用程序开发时,对于不同的场景我们往往需要设计不同的消息,一般的,我们使用 消息类型 来描述不同的消息形式,比如文字信息的消息我们定义为 “文本消息” ,消息里包含了图片数据的消息我们定义为 “图片消息” 等等。

在 Cube 里可以通过 Plugin System 插件系统实现自定义消息,通过定义消息的负载格式来标记不同类型的消息。

教程演示程序截图△ 自定义消息示例程序截图

插件基础

Cube 的 Plugin 基于事件通知机制来实现插件对特定事件的响应和处理。也就是说,Cube 的每个模块会根据自身的技术特点,在必要的工作流程里加入 Hook 来通知插件进行必要的数据干预。

消息模块的插件会接收到来自消息模块内部的消息实例对象 Message ,调用插件之后插件需要返回被处理的 Message 实例以便消息模块继续后续的处理流程。下图是 MessagePluginSent 事件时响应 onInstantiate 事件的流程。

Flow
 

通过这个流程,最终监听器收到 Sent 事件时接收参数就是由插件分化的消息实例了。

 

自定义消息

为了能让我们的插件识别不同的消息类型,我们在消息的负载数据里定义一个 "type" 字段来表示消息的类型,并约定好 text 表示文本消息,image 表示图片消息。这样,文本消息的负载格式就是:

{
   
   
    "type": "text",
    "content": "这里是文本内容"
}

图片消息的负载格式就是:

{
   
   
    "type": "image"
}

图片文件数据由 Message 的文件附件功能进行处理。

 

文本消息

文本消息从 Message 继承,以便符合消息模块插件的处理机制,即插件需要返回一个有效的 Message 实例。

TextMessage

JavaScript 代码:

var TextMessage = Class(Message, {
   
   

    /** 构造函数 */
    ctor: function(param) {
   
   
        if 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值