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
Parameter | Type | Description |
---|---|---|
message | RCIMIWMessage | The message object to be sent |
callback | RCIMIWSendMessageCallback | The 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 Value | Description |
---|---|
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
Parameter | Type | Description |
---|---|---|
message | RCIMIWMessage | The 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
Parameter | Type | Description |
---|---|---|
code | int | The status code of the callback. 0 indicates success, non-zero indicates an exception. |
message | RCIMIWMessage | The 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
Parameter | Type | Description |
---|---|---|
message | RCIMIWMediaMessage | The media message object to be sent |
listener | RCIMIWSendMediaMessageListener | The listener for media message sending events |
Return Value
Return Value | Description |
---|---|
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
Parameter | Type | Description |
---|---|---|
message | RCIMIWMediaMessage | The 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
Parameter | Type | Description |
---|---|---|
message | RCIMIWMediaMessage | The message being sent |
progress | int | The 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
Parameter | Type | Description |
---|---|---|
code | int | The status code of the callback. 0 indicates success, non-zero indicates an exception. |
message | RCIMIWMediaMessage | The message being sent |
Code Example
engine?.onMediaMessageSent = (int? code, RCIMIWMediaMessage? message) {
//...
};