Skip to content

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

final Channel channel = Backendless.Messaging.subscribe( "demo" );
channel.addMessageListener( new AsyncCallback<HashMap>()
{
  @Override
  public void handleResponse( HashMap personObject )
  {
    Log.i( "MYAPP", "Received a message " + personObject );
    Log.i( "MYAPP", "name - " + personObject.get( "name" ) );
    Log.i( "MYAPP", "age - " + personObject.get( "age" ) );
  }

  @Override
  public void handleFault( BackendlessFault fault )
  {
    Log.e( "MYAPP", "Error processing a message " + fault );
  }
}, Person.class );

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 );