Message.fromPushPayload constructor

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

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