How do I change the filter on a subscription?

Follow

To do this, you need the subscription ID of the subscription you need to replace. The client sends that subscription ID and the new filter, and asks AMPS to replace the subscription.

The advantage of changing a filter rather than just creating a new subscription is that AMPS treats the replacement as atomic: for messages that match both the old and new filter, you are guaranteed not to lose messages or receive duplicate messages. 

The exact syntax you use to do this differs depending on the language you're using.  For example, in  Java, you might use this command:

// subId is the command id from the previous subscribe command
client.subscribe(messageHandler,
"the_topic",
"/order_status = 'new'",
Message.Options.Replace,
5000,
subId.toString());

This command replaces the previous subscription with a subscription to the topic named "the_topic", with a filter of "/order_status = 'new'".

Have more questions? Submit a request

Comments

Powered by Zendesk