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: EnxRoom.sendUserData(MessageOpt, IsBroadcast, RecipientIDs, Callback)
Parameters:
MessageOpt– JSON Object containing custom keys. This object is passed to the Recipients without any structure enforcement. Be advised to define keys effectively for signaling needs.IsBroadcast–Boolean. 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.
Notification Event:
user-data-received – Receives signaling in MessageOpt JSONObject as event.message.msg.
MessageOpt Sample JSON:
// Example: Important Information you can put with custom keys
var MessageOpt = {
"broadcast": false, // Flag for Private message
"sender": "Sender's Name",
"senderId": "Sender's Client ID", // room.clientId
"message": "Message body",
"timestamp": "Date Timestamp", // Message sent at
}
To send & receive Custom Signaling
// To send custom data / signal to all (Public Messaging)
room.sendUserData(MessageOpt, true, [], function(data){
// Message sent
});
// To send custom data / signal to selected Participant (Private Messaging)
room.sendUserData(MessageOpt, false, [Recipient_ClientIds], function(data){
// Message sent
});
// To receive custom data / signal notification
room.addEventListener("user-data-received", function (event) {
var InMsg = event.message.msg;
if (InMsg.broadcast === true) {
// Handle Public Message
}
else {
// Handle Message from InMsg.sender
}
});
