The EnxRoom.sendUserData() method allows you to send customized data adhering to a structure not bound by the portal message structure, to one or more users connected in a session. This allows your application to send not just messages but also structured instructions, polls, or any data that requires a customized data structure as per your business requirement.
Class: EnxRoom
Method: -(void)sendUserData:(NSDictionary *)Message isBroadCast:(BOOL)broadcast recipientIDs:(NSArray *)clientIds;
Parameters:
Message– Dictionary containing custom keys. This object is passed to the Recipients without any structure enforcement. Be advised to define keys effectively for signaling needs.isBroadCast– BOOL. Set to true for Public Broadcast and false for signaling to one or more recipients.recipientIDs– Array of Client IDs of recipients of the message when not broadcasting.
Delegate Method:
- room:didUserDataReceived:– Receives signaling in JSONObject. Available from iOS SDk v1.5.3 onwards.
Message Dictionary Sample:
// Example: You can put important information with custom keys
// You may define the JSONObject as per your business needs
NSDictionary* message = @{
"sender": "Sender's Name",
"message": "Message body",
"custom_key": "Data"
}
To send & receive Custom Signaling
NSArray *clientArray = [NSArray arrayWithObjects:@"xxx",@"xxx", nil]
// Signaling to one or selected Recipients
[room sendUserData: message broadCast:false recipientIDs:clientArray];
// Users receive Signal through Callback
// Available till v1.5.2. Deprecated in v1.5.3
- (void)room:(EnxRoom *)room didReceiveChatDataAtRoom:(NSArray *)data {
// data contains incoming message
}
// Users receive Signal through Callback
// Available from v1.5.3.
- (void)room:(EnxRoom *)room didUserDataReceived:(NSArray *)data {
// data contains incoming message
}
Error Codes / Exceptions
| Code | Description |
|---|---|
| 5127 | Exceeding maximum allowed data transfer rate of 100Kb. |
