Message.fromPushPayload constructor
从 WS im.message 推送帧构建 Message
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.toFromId = asInt(payload['to_from_id']);
// from_id 在外层也可能存在
if (msg.fromId == 0) {
msg.fromId = asInt(payload['from_id']);
}
return msg;
}