Publish Map/Dictionary¶
The example demonstrates publishing a value of an untyped data structure and creating a subscriber to receive objects which contain properties of the published object. The message is published into the demo
channel.
Subscriber¶
Channel channel = await Backendless.messaging.subscribe("demo"); channel.addMessageListener((Map personObject) { print("Received a message: $personObject"); print("name - ${personObject['name']}"); print("age - ${personObject['age']}"); });
Publisher¶
curl -X POST \ https://api.backendless.com/APP-ID/REST-API-KEY/messaging/demo \ -H 'content-type: application/json' \ -d '{ "message": { "name":"Joe", "age":30}}'
var personObj = { name:"Joe", age:30 }; Backendless.Messaging.publish( "demo", personObj ) .then( function( result ) { console.log( "message has been published" ); }) .catch( function( error ) { console.log( "error publishing the message - " + error ); })
HashMap personObject = new HashMap(); personObject.put( "name", "Joe" ); personObject.put( "age", 30 ); Backendless.Messaging.publish( "demo", personObject, new AsyncCallback<MessageStatus>() { @Override public void handleResponse( MessageStatus response ) { Log.i( "MYAPP", "Message has been published" ); } @Override public void handleFault( BackendlessFault fault ) { Log.e( "MYAPP", "Error publishing the message" ); } } );
let person = ["name": "Joe", "age": 30] as [String : Any] Backendless.shared.messaging.publish(channelName: "demo", message: person, responseHandler: { messageStatus in print("Message has been published") }, errorHandler: { fault in print("Error: \(fault.message ?? "")") })
NSDictionary *person = @{@"name": @"Joe", @"age": @30}; [Backendless.shared.messaging publishWithChannelName:@"demo" message:person responseHandler:^(MessageStatus *messageStatus) { NSLog(@"Message has been published"); } errorHandler:^(Fault *fault) { NSLog(@"Error: %@", fault.message); }];
Dictionary<string,object> person = new Dictionary<string,object>(); personObject["name"] = "Joe"; personObject["age"] = 30; AsyncCallback<MessageStatus> callback = new AsyncCallback<MessageStatus>( messageStatus => { Console.WriteLine( $"message has been published {messageStatus.MessageId}"); }, fault => { Console.WriteLine( $"error {fault.Message}"); } ); Backendless.Messaging.Publish( "demo", person, callback );
Map personObject = { "name": "Joe", "age": 30 }; Backendless.messaging.publish(personObject, channelName: "demo").then((response) { print("Message has been published"); });