Receive messages in a group channel
Messages sent by other group channel members can be received through the
messageCollection(_:context:channel:addedMessages:) method in message collection delegates.
BaseMessage object received in a group channel falls into one of the following three message types.
A text message sent by a user.
A binary file message sent by a user.
A message with multiple files sent by a user.
A text message sent by an admin through the Platform API.
File message and multiple files message
When receiving a message payload with file data, the SDK can distinguish
MultipleFilesMessages based on the number of files included in
files. If the message contains more than two files, the SDK acknowledges it as a
multipleFilesMessage. If the number of files contained in a messages exceeds the limit, which is 30, the message fails and returns an error of
800110. If any of the files exceeds the file size limit, it returns
When a new message arrives in a group channel,
messageCollection(_:context:updatedChannel:) in the message collection are called.
Whenever an event related to message or group channel occurs, the collection is informed of the event through
ChannelContext, respectively. The
ChannelContext instances have
CollectionEventSource, which contains the information of the event that took place. For example, when a new message is received,
CollectionEventSource.eventMessageReceived is passed as a
MessageEventContext.source value to
MessageCollectionDelegate.messageCollection(_:context:channel:addedMessages:). Meanwhile, when a message is delivered to group channel members who are online, the message's delivery status is automatically marked as
delivered. The value for
GroupChannelEventContext.source is set to
CollectionEventSource.eventDeliveryStatusUpdated and channel members are notified of the event through
MessageCollectionDelegate.messageCollection(_:context:updatedChannel:). To learn more about this topic, see the Message events section in the Message collection page.
You can also register other message-related event delegate by setting the
delegate property in the
When the message UI is no longer needed, call
dispose(). Note that the delegate doesn't work when the message collection is disposed.