Message.fromPushPayload constructor

Message.fromPushPayload(
  1. Map<String, dynamic> payload
)

从 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;
}