Message.fromPushPayload constructor
从 WS im.message 推送帧构建 Message。
from_id / to_from_id / talk_mode 只读外层 payload。
Implementation
factory Message.fromPushPayload(Map<String, dynamic> payload) {
final body = payload['body'];
Map<String, dynamic> bodyMap = {};
if (body is Map) {
bodyMap = Map<String, dynamic>.from(body);
} else if (body is String) {
bodyMap = parseJsonMap(body) ?? {};
}
final msg = Message.fromJson(bodyMap);
msg.talkMode = asInt(payload['talk_mode'], TalkMode.private);
msg.fromId = asInt(payload['from_id']);
msg.toFromId = asInt(payload['to_from_id']);
return msg;
}