V-IM-PRO 消息体介绍

114 阅读2分钟

/src/renderer/src/message 目录主要用于定义和管理消息体相关的数据结构。该目录下的 TypeScript 文件以接口和类型为主,描述了即时通讯系统中各种消息及其扩展属性的结构。每个文件聚焦于一种消息类型或消息扩展,便于系统的模块化开发和维护。

主要文件及功能说明

  • SendInfo.ts

描述了发送消息时所需的附加信息,如发送状态、重试次数等。用于消息发送流程的管理和追踪。SendInfo是一个包装类,其message是消息的实体,code是消息类型代码,对应的是SendCode的Enum。

  • Message.ts

定义了基础的消息体结构,是所有消息类型的核心。包含消息的通用属性,如消息ID、发送者、接收者、时间戳、内容等。为其他扩展消息体提供了基础。

  • ReadReceipt.ts

定义了消息已读回执的数据结构,用于标记消息是否被接收方读取,支持已读未读功能。

  • Ack.ts

表示消息的确认(acknowledgement)结构,用于消息投递的可靠性保障,确保消息被正确接收和处理。

  • ReadyAuth.ts

主要用于描述消息相关的认证准备信息,可能涉及到消息发送前的权限校验或身份验证。

  • OtherLogin.ts

用于标识其他设备登录相关的消息体,便于多端同步和安全提醒。

  • ExtendFile.ts

扩展了文件类消息的结构,包含文件名、大小、类型等属性,支持文件消息的发送与接收。

  • ExtendForward.ts

描述了消息转发的扩展属性,支持消息的多次转发和溯源。

  • ExtendQuote.ts

用于实现消息引用功能,允许用户在发送新消息时引用历史消息内容。

  • ExtendVoice.ts

扩展了语音消息的结构,包含语音时长、格式等信息,支持语音消息的处理。

  • ExtendAt.ts

实现了@(艾特)功能的扩展,记录被@用户的信息,便于群聊中提醒特定成员。

设计特点

  • 类型安全

所有结构均采用 TypeScript 接口定义,保证类型安全和开发时的智能提示。

  • 高内聚低耦合

各类消息体和扩展结构分文件管理,便于维护和扩展。

  • 易于扩展

新增消息类型或扩展时,只需增加新的文件和接口,不影响现有结构。

  • 面向场景

充分考虑了实际通讯场景,如已读回执、消息转发、@提醒、文件/语音消息等。

适用范围

本目录下的消息体定义适用于即时通讯、社交聊天、企业协作等需要消息收发、状态同步的前端或全栈项目。通过这些结构,可以高效地实现消息的创建、发送、接收、展示及相关功能扩展。