Skip to main content

Sending Messages

This document explains how to send messages using IMLib.

The client SDK has a rate limit for sending messages, allowing a maximum of 5 messages per second.

Sending Regular Messages

Developers can use the following interface to send text messages, quoted messages, and custom messages.

Method

Future<int> sendMessage(RCIMIWMessage message, {RCIMIWSendMessageCallback? callback});

Parameter Description

ParameterTypeDescription
messageRCIMIWMessageThe message object to be sent
callbackRCIMIWSendMessageCallbackThe callback for message sending events. SDK supports callback-style responses starting from version 5.3.1. Other callback methods for this interface are deprecated as of version 5.4.0. If the callback parameter is provided, only the callback will be triggered.

Return Value

Return ValueDescription
Future<int>The status code of the current operation. 0 indicates success. Specific results require implementing the interface callback. Non-zero values indicate that the current operation failed, and no callback will be triggered. Refer to the error codes for details.

Code Example

RCIMIWSendMessageCallback? callback = RCIMIWSendMessageCallback(onMessageSaved: (RCIMIWMessage? message) {
//...
}, onMessageSent: (int? code, RCIMIWMessage? message) {
//...
});

int? ret = await engine?.sendMessage(message, callback:callback);

Callback Methods

  • onMessageAttached

    Listener for when a message is saved to the database.

Function(RCIMIWMessage? message)? onMessageAttached;

Parameter Description

ParameterTypeDescription
messageRCIMIWMessageThe message being sent

Code Example

engine?.onMessageAttached = (RCIMIWMessage? message) {
//...
};
  • onMessageSent

    Listener for the result of message sending.

Function(int? code, RCIMIWMessage? message)? onMessageSent;

Parameter Description

ParameterTypeDescription
codeintThe status code of the callback. 0 indicates success, non-zero indicates an exception.
messageRCIMIWMessageThe message being sent

Code Example

engine?.onMessageSent = (int? code, RCIMIWMessage? message) {
//...
};

Sending Media Messages

Developers can use the following interface to send image messages, voice messages, video messages, file messages, and GIF messages.

Method

Future<int> sendMediaMessage(RCIMIWMediaMessage message, {RCIMIWSendMediaMessageListener? listener});

Parameter Description

ParameterTypeDescription
messageRCIMIWMediaMessageThe media message object to be sent
listenerRCIMIWSendMediaMessageListenerThe listener for media message sending events

Return Value

Return ValueDescription
Future<int>The status code of the current operation. 0 indicates success. Specific results require implementing the interface callback. Non-zero values indicate that the current operation failed, and no callback will be triggered. Refer to the error codes for details.

Code Example

RCIMIWSendMediaMessageListener? listener = RCIMIWSendMediaMessageListener(onMediaMessageSaved: (RCIMIWMediaMessage? message) {
//...
}, onMediaMessageSending: (RCIMIWMediaMessage? message, int? progress) {
//...
}, onSendingMediaMessageCanceled: (RCIMIWMediaMessage? message) {
//...
}, onMediaMessageSent: (int? code, RCIMIWMediaMessage? message) {
//...
});

int? ret = await engine?.sendMediaMessage(message, listener:listener);

Callback Methods

  • onMediaMessageAttached

    Listener for when a media message is saved to the database.

Function(RCIMIWMediaMessage? message)? onMediaMessageAttached;

Parameter Description

ParameterTypeDescription
messageRCIMIWMediaMessageThe message being sent

Code Example

engine?.onMediaMessageAttached = (RCIMIWMediaMessage? message) {
//...
};
  • onMediaMessageSending

    Listener for the progress of media message sending.

Function(RCIMIWMediaMessage? message, int? progress)? onMediaMessageSending;

Parameter Description

ParameterTypeDescription
messageRCIMIWMediaMessageThe message being sent
progressintThe sending progress

Code Example

engine?.onMediaMessageSending = (RCIMIWMediaMessage? message, int? progress) {
//...
};
  • onMediaMessageSent

    Listener for the result of media message sending.

Function(int? code, RCIMIWMediaMessage? message)? onMediaMessageSent;

Parameter Description

ParameterTypeDescription
codeintThe status code of the callback. 0 indicates success, non-zero indicates an exception.
messageRCIMIWMediaMessageThe message being sent

Code Example

engine?.onMediaMessageSent = (int? code, RCIMIWMediaMessage? message) {
//...
};