Send a message
For both open and group channels, users can send messages of the following types to the channel they are in.
A text message sent by a user.
A binary file message sent by a user.
A message with multiple files sent by a user.
In addition to these message types, you can further subclassify a message by specifying its custom type. This custom type takes on the form of
String and can be used to search or filter messages. It allows you to append information to your message and customize message categorization.
The following code shows several types of parameters that you can configure to customize text messages using
UserMessageCreateParams. Under the
UserMessageCreateParams object, you can assign specific values to
data, and other properties. By assigning arbitrary string to the
data property, you can set custom font size, font type, or
JSON object. To send your messages, you need to pass the
UserMessageCreateParams object as an argument to the parameter in the
Through the callback handler of the
sendUserMessage() method, the Sendbird server always notifies whether your message has been successfully sent to the channel. When there is a delivery failure due to network issues, an exception is returned through the callback method.
A user can also send a binary file through the Chat SDK as the file itself or through sending a URL.
Sending a raw file means you're uploading it to the Sendbird server where it can be downloaded on client apps. When you upload a file directly to the server, there is a size limit imposed on the file depending on your plan. You can see the limit on your dashboard and contact our sales team to change the limit.
The other option is to send a file hosted on your server. You can pass the file's URL, which represents its location, as an argument to a parameter. In this case, your file isn't hosted on the Sendbird server and it can only be downloaded from your own server. When you send a file message with a URL, there is no limit on the file size since it isn't directly uploaded to the Sendbird server.
Note: You can use
sendFileMessages(), which is another method that allows you to send up to 20 file messages per one method call. Refer to our API Reference to learn more.
The following code shows several types of parameters that you can configure to customize file messages by using
FileMessageCreateParams. Under the
FileMessageCreateParams object, you can assign specific values to
customType and other properties. To send your messages, you need to pass the
FileMessageCreateParams object as an argument to the parameter in the
Through the callback handler of the
sendFileMessage() method, the Sendbird server always notifies whether your message has been successfully sent to the channel. When there is a delivery failure due to network issues, an exception is returned through the callback method.
You can also send a message with multiple files through
sendMultipleFilesMessage() by passing an
MultipleFilesMessageCreateParams object. The params contains
uploadableFileInfoList, which holds an array of
uploadableFileInfo objects. A single
uploadableFileInfo object contains the data of each file such as
Once all of the files are uploaded to the Sendbird server and its message is successfully sent, file-related data is contained in the message object's
files as an array of
If some files fail to upload while others succeed, the message is marked as
failed and the server returns the URL of successfully uploaded files in a failed message through
onResult(). You could use the URLs when retrying the message request.