If the StartTyping() and EndTyping() methods are called when a user is typing a text message, Sendbird server notifies of the event to the client apps of all channel members through the TypingStatusUpdate() of the registered channel event handler.
groupChannel.StartTyping();
groupChannel.EndTyping();
...
// To listen to an update from all the other channel members' client apps, implement the OnTypingStatusUpdated() with things to do when notified.
SendBirdClient.ChannelHandler ch = new SendBirdClient.ChannelHandler();
ch.OnTypingStatusUpdated = (GroupChannel groupChannel) =>
{
if (currentGroupChannel.Url.Equals(groupChannel.Url))
{
List<User> members = groupChannel.TypingMembers;
// Refresh typing status of members within channel.
}
};
SendBirdClient.AddChannelHandler(UNIQUE_HANDLER_ID, ch);
Retrieve number of members who have not read a message
If the MarkAsRead() method is called when a member reads messages, Sendbird server notifies of the event to the client apps of all channel members through the ReadReceiptUpdated() of the registered channel handler. Using this, you can make the channel up-to-date.
groupChannel.MarkAsRead();
...
SendBirdClient.ChannelHandler ch = new SendBirdClient.ChannelHandler();
ch.OnReadReceiptUpdated = (GroupChannel groupChannel) =>
{
if (currentGroupChannel.Url.Equals(groupChannel.Url))
{
foreach (BaseMessage msg in yourMessages)
{
int unreadCount = groupChannel.GetReadReceipt(msg);
if (unreadCount <= 0)
{
// All members have read the message.
}
else
{
// Some members haven't read the message.
}
}
}
};
SendBirdClient.AddChannelHandler(UNIQUE_HANDLER_ID, ch);
The GetReadReceipt(message) returns the number of members in the channel who have not read the message.
int unreadCount = groupChannel.GetReadReceipt(message);
You can send admin messages to a group channel using Sendbird Dashboard or Chat Platform API. To send an admin message through your dashboard, go to the Chat > Group channels, select a group channel, find the message box below, click the Admin message tab, and then write your message in the box. An admin message is limited to 1,000 characters.
Unlike other types of messages, a push notification for an admin message is not available by default. If you want further assistance on this, please contact our sales team.
When creating a group channel, you can additionally specify a custom channel type to subclassify group channels. This custom type takes on the form of a String, and can be useful in searching or filtering group channels.
The Data and CustomType properties of a channel object allow you to append information to your channels. While both properties can be used flexibly, common examples for the CustomType include categorizing channels into School or Work.
When sending a message, you can additionally specify a custom message type to subclassify messages. This custom type takes on the form of a String, and can be useful in searching or filtering messages.
The Data and CustomType properties of a message object allow you to append information to your messages. While both properties can be used flexibly, common examples for the CustomType include categorizing message groups into Notes or Contacts.
To embed a custom type into your message, pass a String value as an argument to the parameter in the SendUserMessage() or SendFileMessage() method.
groupChannel.SendUserMessage(MESSAGE, DATA, CUSTOM_TYPE, (UserMessage userMessage, SendBirdException e) =>
{
if (e != null)
{
// Handle error.
}
...
});
The CustomType property contains the message's custom type.
It is possible for text messages to be sent in different languages through the Sendbird's auto-translation feature. When sending a text message, pass in a List of language codes to the SendUserMessage() to request translated messages in the corresponding languages.