- Android
- iOS
- JavaScript
- Flutter
- ReactNative
The Broadcast Assistant sends messages to multiple conversations, without affecting conversation sorting on the sender.
Parameters
| Name | Type | Description | Version |
|---|---|---|---|
| content | MessageContent | Message content | 1.0.0 |
| conversations | List[] | Target conversation list | 1.0.0 |
| callback | IMessageManager.IBroadcastMessageCallback | Callback | 1.0.0 |
Code Example
Conversation c1 = new Conversation(Conversation.ConversationType.PRIVATE, "userid1");
Conversation c2 = new Conversation(Conversation.ConversationType.PRIVATE, "userid2");
Conversation c3 = new Conversation(Conversation.ConversationType.PRIVATE, "userid3");
Conversation c4 = new Conversation(Conversation.ConversationType.GROUP, "groupid1");
List<Conversation> conversations = new ArrayList<>();
conversations.add(c1);
conversations.add(c2);
conversations.add(c3);
conversations.add(c4);
TextMessage text = new TextMessage("broadcast");
JIM.getInstance().getMessageManager().broadcastMessage(text, conversations, new IMessageManager.IBroadcastMessageCallback() {
@Override
public void onProgress(Message message, int errorCode, int processCount, int totalCount) {
}
@Override
public void onComplete() {
}
});
The Broadcast Assistant sends messages to multiple conversations, without affecting conversation sorting on the sender.
Parameters
| Name | Type | Description | Version |
|---|---|---|---|
| content | JMessageContent | Message content | 1.0.0 |
| conversations | NSArray <JConversation *> | Target conversation list | 1.0.0 |
| progressBlock | Progress callback | 1.0.0 | |
| completeBlock | Completion callback | 1.0.0 |
Code Example
JConversation *c1 = [[JConversation alloc] initWithConversationType:JConversationTypePrivate conversationId:@"userId1"];
JConversation *c2 = [[JConversation alloc] initWithConversationType:JConversationTypePrivate conversationId:@"userId2"];
JConversation *c3 = [[JConversation alloc] initWithConversationType:JConversationTypePrivate conversationId:@"userId3"];
JConversation *c4 = [[JConversation alloc] initWithConversationType:JConversationTypeGroup conversationId:@"groupId1"];
NSArray *conversations = @[c1, c2, c3, c4];
JTextMessage *text = [[JTextMessage alloc] initWithContent:@"broadcast"];
[JIM.shared.messageManager broadcastMessage:text
inConversations:conversations
progress:^(JMessage *sentMessage, JErrorCode code, int processCount, int totalCount) {
} complete:^{
}];
The Broadcast Assistant can send messages to up to 100 groups or users at once. It also supports choosing whether broadcast messages affect conversation list sorting, which is useful for multi-recipient broadcasts.
Parameters
The messages parameter accepts an array; each message is described below:
| Name | Type | Required | Default | Description | Version |
|---|---|---|---|---|---|
| message | Object | Yes | Message object | 1.0.0 | |
| message.conversationType | Number | Yes | Conversation type | 1.0.0 | |
| message.conversationId | String | Yes | Conversation ID. For PRIVATE conversations, it is the recipient userId; for GROUP conversations, it is the group ID. | 1.0.0 | |
| message.name | String | Yes | Message name. Use it to send different message types as needed; see [MessageType] for enum details.(../../../enum/web#message) | 1.0.0 | |
| message.content | Object | Yes | Message content used to construct the message.name message | 1.0.0 | |
| message.isMass | Boolean | No | true | Indicates a broadcast message. The default is true; broadcasts do not affect conversation list sorting. | 1.0.0 |
| lifeTime | Number | No | 0 | Message destruction duration. It must be greater than 0, in ms; for example, 60 seconds is 1 * 60 * 1000. | 1.9.0 |
| lifeTimeAfterRead | Number | No | 0 | Read-once message duration. It must be greater than 0, in ms; for example, 60 seconds is 1 * 60 * 1000. | 1.9.0 |
Send Callbacks
| Name | Type | Description | Version |
|---|---|---|---|
| callbaks | Object | Unlike other APIs that return a Promise, the broadcast API returns results through callbacks. | 1.0.0 |
| callbacks.onbefore | Function | Triggered multiple times during broadcasting. Returns the message to be sent, including tid, as a [Message].(../../../msg/message) | 1.0.0 |
| callbacks.onprogress | Function | Triggered multiple times during broadcasting. Returns the number sent, total number, and the [Message] sent successfully in the current operation.(../../../msg/message) | 1.0.0 |
| callbacks.oncompleted | Function | Triggered once after broadcasting finishes. Returns an array of all broadcast messages; see [Message] for each message structure.(../../../msg/message) | 1.0.0 |
Send Failure
Invalid parameters are returned through Promise. The failed state of each message is returned in callbacks.onprogress; inspect message.error and use status codes to determine the exception.
| Name | Type | Description | Version |
|---|---|---|---|
| result | Object | When sending fails, returns an object containing tid and error. Check error.msg directly or see [status codes].(../../../status_code/web) | 1.0.0 |
Code Example
let { ConversationType, MessageType } = JIM;
let messages = [];
// send a mass message to userid1 through userid10
for (let i = 1; i < 11; i++) {
let message = {
conversationType: ConversationType.PRIVATE,
conversationId: `userid${i}`,
content: { content: `Hello JIM ${Date.now()}` },
name: MessageType.TEXT,
isMass: true
};
messages.push(message)
}
jim.sendMassMessage(messages, {
onprogress: ({ message, count, total }) => {
console.log(`${count}/${total}`, message);
},
oncompleted: ({ messages }) => {
console.log('send mass messages completed.', messages);
},
}).then(() => {
console.log('send mass messages successfully');
}, (result) => {
let { error, tid } = result;
// Use tid to update the failed-message state. On Web, failed messages are stored only in SDK memory and are unavailable after a refresh
console.log(tid, error);
});;
Not supported.
Not supported.