Skip to content

Subscribe for Filtered Messages

Backendless message filtering is a powerful mechanism enabling conditional message delivery, interest-based subscriptions and private (point-to-point) messaging. To enable filtering, the subscription API documented below requires a special condition called selector which must be included in the API's request body. Backendless applies the selector to every message published into a channel and if the condition is true, the message is delivered to the subscriber.

A selector is a query expressed in the SQL-92 syntax and formatted as the condition part of the SQL's WHERE clause. The condition references headers in the published messages. When a message is published and a subscriber has a selector, Backendless checks the condition of the selector against the headers of the published message. If the result of the condition is true, the message is delivered to the subscriber.

Message retrieval requires a separate API call documented in the Retrieve Messages section of this guide.

Method

POST

Endpoint URL

The xxxx.backendless.app is a subdomain assigned to your application. For more information see the Client-side Setup section of this documentation.

https://xxxx.backendless.app/api/messaging/<channel-name>/subscribe

where:

Argument                Description
<channel-name> name of the channel to subscribe to.

Request Headers

Content-Type: application/json  
user-token: optional value obtained as a result of the login operation.

where:

Argument                Description
Content-Type Must be set to application/json. This header is mandatory.
user-token Optional header. Contains a value returned by Backendless in a preceding user Login API call. If user-token is set in the request, the operation will be executed with the security policy associated with the currently logged in user. This means all permissions associated with the user and the roles assigned to the user will be enforced by Backendless.

Request Body

Optional parameters are shown in [square brackets]:

{  
  ["subscriberId" : value,]  
  ["selector":selector-query]  
}

Response Body

{  
  "subscriptionId" : value  
}

Returned subscriptionId must be used in the API call to retrieve messages for the subscription.

Errors

When the server-side reports an error, it returns a JSON object in the following format:

{  
  "message":error-message,  
  "code":error-code  
}

Example

For an example of channel subscription with a selector see the Conditional Pub/Sub section of this guide.

Codeless Reference

pubsub_api_subscribe_for_all_messages_1

where:

Argument                Description
id The unique identifier of the event listener.
channel Name of the channel to subscribe to.
selector A selector is a query expressed in the SQL-92 syntax and formatted as the condition part of the SQL's WHERE clause. The condition references headers in the published messages.
message When a listener gets triggered, it assigns data of the message matching the where clause condition to this variable(message).

This operation does not return a value.

The example below creates a message listener named "my-listener-1" for the "default" channel. The selector property is set to listen to only those messages whose headers contain the "city" property with 'Dallas' value and "temperature" property whose value is higher than 60. By setting this condition, only specific(filtered) messages will trigger the listener.

When a message containing the aforementioned headers is published to the "default" channel the listener gets triggered and saves the message content to the message variable. Then the data stored in the message variable gets printed.

pubsub_api_subscribe_for_filtered_messages