sendMessage method

void sendMessage(
  1. NIMMessage message, {
  2. NIMMessage? replyMsg,
  3. bool resend = false,
})

Implementation

void sendMessage(NIMMessage message,
    {NIMMessage? replyMsg, bool resend = false}) async {
  message.messageAck = await ConfigRepo.getShowReadStatus();
  //回调
  if (ChatKitClient.instance.messageAction != null) {
    ChatKitClient.instance.messageAction!(message);
  }
  message.config = NIMCustomMessageConfig(enablePush: true);
  if (message.pushPayload == null &&
      ChatKitClient.instance.chatUIConfig.getPushPayload != null) {
    message.pushPayload =
        ChatKitClient.instance.chatUIConfig.getPushPayload!.call(message);
  }
  var chatMessage = ChatMessage(message, replyMsg: replyMsg);
  if (resend == false) {
    //发送消息插入到列表最前面
    _messageList.insert(0, chatMessage);
    notifyListeners();
  } else {
    _onMessageSending(chatMessage);
  }
  if (replyMsg != null) {
    var msgInfo = ReplyMessageInfo(
        idClient: replyMsg.uuid!,
        scene: replyMsg.sessionType?.name,
        to: replyMsg.sessionId,
        from: getIt<LoginService>().userInfo?.userId,
        idServer: replyMsg.serverId?.toString(),
        time: replyMsg.timestamp);
    if (message.remoteExtension != null) {
      message.remoteExtension![ChatMessage.keyReplyMsgKey] = msgInfo.toMap();
    } else {
      message.remoteExtension = {ChatMessage.keyReplyMsgKey: msgInfo.toMap()};
    }
  }
  ChatMessageRepo.sendMessage(message: message, resend: resend).then((value) {
    _onMessageSend(value, chatMessage);
  });
}