Message class

消息记录。WS im.message 的 from_id/to_from_id/talk_mode 只在外层 payload。

Constructors

Message({String msgId = '', String sequence = '0', int msgType = MsgType.text, int fromId = 0, String nickname = '', String avatar = '', int isRevoked = YesNo.no, String sendTime = '', Map<String, dynamic>? extra, Map<String, dynamic>? quote, int talkMode = TalkMode.private, int toFromId = 0, int status = 0})
Message.fromJson(Map<String, dynamic> json)
factory
Message.fromPushPayload(Map<String, dynamic> payload)
从 WS im.message 推送帧构建 Message。 from_id / to_from_id / talk_mode 只读外层 payload。
factory

Properties

avatar ↔ String
getter/setter pair
extra ↔ Map<String, dynamic>?
extra / quote 在服务端多为 JSON 字符串,SDK 内统一解析为 Map
getter/setter pair
fromId ↔ int
getter/setter pair
hashCode → int
The hash code for this object.
no setterinherited
isFlashRead → bool
no setter
isPending → bool
no setter
isRevoked ↔ int
getter/setter pair
msgId ↔ String
getter/setter pair
msgType ↔ int
getter/setter pair
nickname ↔ String
getter/setter pair
previewText → String
no setter
quote ↔ Map<String, dynamic>?
getter/setter pair
revoked → bool
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sendTime ↔ String
getter/setter pair
seq → int
将 sequence 解析为整数(仅用于本地排序/比较,非独立字段)
no setter
sequence ↔ String
getter/setter pair
status ↔ int
本地发送状态:0 成功/已收,1 发送中,2 失败
getter/setter pair
talkMode ↔ int
推送外层会话上下文
getter/setter pair
toFromId ↔ int
getter/setter pair

Methods

copyWith({String? msgId, String? sequence, int? msgType, int? fromId, String? nickname, String? avatar, int? isRevoked, String? sendTime, Map<String, dynamic>? extra, Map<String, dynamic>? quote, int? talkMode, int? toFromId, int? status}) → Message
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() → Map<String, dynamic>
toStorageMap({required int ownerId}) → Map<String, dynamic>
落库用扁平 Map(sequence 以整数写入,保证本地排序/比较与服务端一致)
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

compareNewestFirst(Message a, Message b) → int
最新在前(sequence desc, send_time desc) seq<=0 的未同步消息视为最新(避免 AI 落库暂无 seq 时被排到列表顶部「消失」)
compareOldestFirst(Message a, Message b) → int
最旧在前(UI 列表:旧→新) seq<=0 排在已同步消息之后(底部),避免打字机结束后气泡「消失」
dedupeByMsgId(Iterable<Message> list) → List<Message>
同 msg_id 保留 sequence 更大的