Documentation Index
Fetch the complete documentation index at: https://cometchat-22654f5b-docs-android-v6-beta2.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Using CometChat, you can send three types of messages:
- A text message, the most common and standard message type.
- A media message, for sending photos, videos and files.
- A custom message, for sending completely custom data using JSON structures.
You can also send metadata along with a text, media or custom message. Think, for example, if you’d want to share the user’s location with every message, you can use the metadata field.
Text Message
In other words, as a sender, how do I send a text message?
To send a text message to a single user or group, you need to use the sendMessage() method and pass a TextMessage object to it.
User(Swift)
User(Objective C)
Group(Swift)
Group(Objective C)
let receiverID = "cometchat-uid-2"
let text = "Hello"
let textMessage = TextMessage(receiverUid: receiverID, text: text, receiverType: .user)
CometChat.sendTextMessage(message: textMessage, onSuccess: { (message) in
print("TextMessage sent successfully. " + message.stringValue())
}) { (error) in
print("TextMessage sending failed with error: " + error!.errorDescription);
}
NSString *receiverID = @"cometchat-uid-1";
NSString *text = @"Hello";
TextMessage *textMessage = [[TextMessage alloc]initWithReceiverUid:receiverID text:text receiverType:ReceiverTypeUser];
[CometChat sendTextMessageWithMessage:textMessage onSuccess:^(TextMessage * message) {
NSLog(@"TextMessage sent successfully. %@",[message stringValue]);
} onError:^(CometChatException * error) {
NSLog(@"TextMessage sending failed with error: %@",[error errorDescription]);
}];
let receiverID = "cometchat-guid-102"
let text = "Hello"
let textMessage = TextMessage(receiverUid: receiverID, text: text, receiverType: .group)
CometChat.sendTextMessage(message: textMessage, onSuccess: { (message) in
print("TextMessage sent successfully. " + message.stringValue())
}) { (error) in
print("TextMessage sending failed with error: " + error!.errorDescription);
}
NSString *receiverID = @"cometchat-guid-101";
NSString *text = @"Hello";
TextMessage *textMessage = [[TextMessage alloc]initWithReceiverUid:receiverID text:text receiverType:ReceiverTypeGroup];
[CometChat sendTextMessageWithMessage:textMessage onSuccess:^(TextMessage * message) {
NSLog(@"TextMessage sent successfully. %@",[message stringValue]);
} onError:^(CometChatException * error) {
NSLog(@"TextMessage sending failed with error: %@",[error errorDescription]);
}];
To send a message you need to create an object of the TextMessage class. The initialize method of the TextMessage class takes the following mandatory parameters:
The TextMessage class constructor takes the following parameters:
| Parameters | Information |
|---|
| receiverID | The UID or GUID of the recipient |
| text | The text to be sent |
| receiverType | The type of the receiver to whom the message is to be sent i.e user or group |
When a text message is sent successfully, the response will include a TextMessage object which includes all information related to the sent message.
Add Metadata to Text Message
To send custom data along with a text message, you can use the metadata field provided in TextMessage. A metadata field is a dictionary of type [String: Any] which will be received as it was sent without any processing from CometChat. It can be used to send any additional data that needs to be sent along with a message.
let metadata = ["latitude":"50.6192171633316","longitude":"-72.68182268750002"];
textMessage.metaData = metadata;
NSDictionary * metadata = @{@"latitude":@"50.6192171633316",@"longitude":@"-72.68182268750002"};
[textMessage setMetaData:metadata];
In other words, as a sender, how do I send a media message like photos, videos & files?
To send a media message to any user or group, you need to use the sendMediaMessage() method and pass a MediaMessage object to it.
User(Swift)
User(Objective C)
Group(Swift)
Group(Objective C)
let receiverid = "cometchat-uid-2"
let mediaUrl = "Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/image.jpg"
let mediaMessage = MediaMessage(receiverUid: receiverid, fileurl:mediaUrl, messageType: .image, receiverType: .user);
CometChat.sendMediaMessage(message: mediaMessage, onSuccess: { (message) in
print("MediaMessage sent successfully. " + message.stringValue())
}) { (error) in
print("MediaMessage sending failed with error: " + error.errorDescription);
}
NSString *receiverID = @"cometchat-uid-1";
NSString *filePath = @"Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/image.jpg";
MediaMessage *mediaMessage = [MediaMessage alloc]initWithReceiverUid:receiverID fileurl:filePath messageType:messageTypeImage receiverType:ReceiverTypeUser];
[CometChat sendMediaMessageWithMessage:mediaMessage onSuccess:^(MediaMessage * message) {
NSLog(@"MediaMessage sent successfully. %@",[message stringValue]);
} onError:^(CometChatException * error) {
NSLog(@"MediaMessage sending failed with error: %@",[error errorDescription]);
}];
let receiverid = "cometchat-uid-2"
let mediaUrl = "Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/image.jpg"
let mediaMessage = MediaMessage(receiverUid: receiverid, fileurl:mediaUrl, messageType: .image, receiverType: .group);
CometChat.sendMediaMessage(message: mediaMessage, onSuccess: { (message) in
print("MediaMessage sent successfully. " + message.stringValue())
}) { (error) in
print("MediaMessage sending failed with error: " + error.errorDescription);
}
NSString *receiverID = @"cometchat-uid-1";
NSString *filePath = @"Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/image.jpg";
MediaMessage *mediaMessage = [MediaMessage alloc]initWithReceiverUid:receiverID fileurl:filePath messageType:messageTypeImage receiverType:ReceiverTypeGroup];
[CometChat sendMediaMessageWithMessage:mediaMessage onSuccess:^(MediaMessage * message) {
NSLog(@"MediaMessage sent successfully. %@",[message stringValue]);
} onError:^(CometChatException * error) {
NSLog(@"MediaMessage sending failed with error: %@",[error errorDescription]);
}];
To send a media message you need to create an object of the MediaMessage class. The initialize method of the MediaMessage class takes the following mandatory parameters:
| Parameter | Description |
|---|
| receiverId | The UID or GUID of the recipient |
| fileurl | The file path object to be sent |
| messageType | The type of the message that needs to be sent which in this case can be: - image - video - audio - file |
| receiverType | The type of the receiver to whom the message is to be sent - user - group |
On success, you will receive an object of the MediaMessage class containing all the information related to the sent media message.
To send custom data along with a media message, you can use the metadata field provided in MediaMessage. A metadata field is a dictionary of type [String: Any] which will be received as it was sent without any processing from CometChat. It can be used to send any additional data that needs to be sent along with a message.
let metadata = ["latitude":"50.6192171633316","longitude":"-72.68182268750002"];
mediaMessage.metaData = metadata;
NSDictionary * metadata = @{@"latitude":@"50.6192171633316",@"longitude":@"-72.68182268750002"};
[mediaMessage setMetaData:metadata];
Custom Message
CometChat SDK allows you to send a completely custom message across. You can use this feature to send messages that do not fit in any default categories provided. In order to send a custom message, you need to use the sendCustomMessage() method.
The sendCustomMessage() methods takes an object of the CustomMessage which can be obtained using the below two constructor:
let customMessage : CustomMessage = CustomMessage(receiverId: receiverId, receiverType: .user, customData : customData, type: "Custom Type")
The above constructor, helps you create a custom message with the message type set to whatever is passed to the constructor and the category set to custom.
The parameters involved are:
- receiverId - Unique id of the user or group to which the message is to be sent.
- receiverType - Type of the receiver i.e user or group
- type - custom message type that you need to set
- customData - The data to be passed as the message in the form of a Dictionary object.
You can also use the subType field of the CustomMessage class to set a specific type for the CustomeMessage.
Once the object of CustomMessage class is ready you can send the custom message using the sendCustomMessage() method.
User(Swift)
User(Objective C)
Group(Swift)
Group(Objective C)
let receiverid = "cometchat-uid-2"
let customData : [String : Any] = ["customKey" : "customData"]
let customMessage = CustomMessage(receiverUid: receiverid, receiverType: .user, customData : customData, type: "Custom Type");
CometChat.sendCustomMessage(message: customMessage, onSuccess: { (message) in
print("CustomMessage sent successfully. " + message.stringValue())
}) { (error) in
print("CustomMessage sending failed with error: " + error!.errorDescription);
}
NSString *receiverID = @"cometchat-uid-1";
NSMutableDictionary<NSString *, id> *customData = [NSMutableDictionary new];
[customData setObject:@"customData" forKey:@"customKey"];
CustomMessage *customMessage = [CustomMessage alloc]initWithReceiverUid:receiverID receiverType:ReceiverTypeUser customData: customData type:@"Custom Type"];
[CometChat sendCustomMessageWithMessage:customMessage onSuccess:^(CustomMessage * message) {
NSLog(@"CustomMessage sent successfully. %@",[message stringValue]);
} onError:^(CometChatException * error) {
NSLog(@"CustomMessage sending failed with error: %@",[error errorDescription]);
}];
let receiverid = "cometchat-uid-2"
let customData : [String : Any] = ["customKey" : "customData"]
let customMessage = CustomMessage(receiverUid: receiverid, receiverType: .group, customData : customData, type: "Custom Type");
CometChat.sendCustomMessage(message: customMessage, onSuccess: { (message) in
print("CustomMessage sent successfully. " + message.stringValue())
}) { (error) in
print("CustomMessage sending failed with error: " + error!.errorDescription);
}
NSString *receiverID = @"cometchat-uid-1";
NSMutableDictionary<NSString *, id> *customData = [NSMutableDictionary new];
[customData setObject:@"customData" forKey:@"customKey"];
CustomMessage *customMessage = [CustomMessage alloc]initWithReceiverUid:receiverID receiverType:ReceiverTypeGroup customData: customData type:@"Custom Type"];
[CometChat sendCustomMessageWithMessage:customMessage onSuccess:^(CustomMessage * message) {
NSLog(@"CustomMessage sent successfully. %@",[message stringValue]);
} onError:^(CometChatException * error) {
NSLog(@"CustomMessage sending failed with error: %@",[error errorDescription]);
}];
The above sample explains how custom messages can be used to share the location with a user. The same can be achieved for groups.
In success, you will receive an object of the CustomMessage class.