sendMessage method

  1. @override
void sendMessage(
  1. NIMMessage message, {
  2. NIMMessage? replyMsg,
  3. NIMMessagePushConfig? pushConfig,
})
override

发送消息最终实现 message 消息 replyMsg 回复消息 pushConfig 推送配置 aiAgent 消息发送的AI代理

Implementation

@override
void sendMessage(
  NIMMessage message, {
  NIMMessage? replyMsg,
  NIMMessagePushConfig? pushConfig,
}) async {
  final messageClientId = message.messageClientId;
  if (messageClientId != null) {
    _pendingTopicMessageClientIds.add(messageClientId);
  }
  final params = await ChatMessageHelper.getSenderParams(
    message,
    conversationId,
    pushConfig: pushConfig,
  );

  if (isPlaceholder) {
    final result = await TopicRepo.instance.sendTopicMessage(
      message: message,
      conversationId: conversationId,
      params: V2NIMSendTopicMessageParams(sendMessageParams: params),
    );
    _handleTopicSendResult(result, message, isFirstMessage: true);
    return;
  }

  if (replyMsg != null) {
    final result = await TopicRepo.instance.replyTopicMessage(
      message: message,
      replyMessage: replyMsg,
      topic: _currentTopic!,
      params: params,
    );
    _handleTopicSendResult(result, message);
    return;
  }

  final result = await TopicRepo.instance.sendTopicMessage(
    message: message,
    conversationId: conversationId,
    topic: _currentTopic,
    params: V2NIMSendTopicMessageParams(sendMessageParams: params),
  );
  _handleTopicSendResult(result, message);
}