Push Notifications - Device Activation and Subscription
Push Device object
This object is accessible through client.push
and provides to push-compatible devices :
Methods
activate
Register the device for push. When the activation process is completed, Ably will .
deactivate
Deregister the device for push. When the deactivation process is completed, Ably will .
Related types
DeviceDetails
A DeviceDetails
is a type encapsulating attributes of a device registered for push notifications.
Properties
- id
- unique identifier for the device generated by the device itselfType:
String
- clientId
- optional trusted client identifier for the deviceType:
String
- formFactor
- form factor of the push device. Must be one of
phone
,tablet
,desktop
,tv
,watch
,car
orembedded
Type:String
- metadata
- optional metadata object for this device. The metadata for a device may only be set by clients with
push-admin
privilegesType:Object
- platform
- platform of the push device. Must be one of
ios
orandroid
Type:String
- deviceSecret
- Secret value for the device.Type:
String
- push.recipient
- push recipient details for this device. See the REST API push publish documentation for more detailsType:
Object
- push.state
- the current state of the push device being either
Active
,Failing
orFailed
Type:String
- push.errorReason
- when the device’s state is failing or failed, this attribute contains the reason for the most recent failureType:
ErrorInfo
LocalDevice
An extension of DeviceDetails
. In addition to the properties of DeviceDetails
, it includes the following:
Properties
- deviceIdentityToken
- a unique identity token for the deviceType:
String
PushChannel
PushChannelSubscription
An PushChannelSubscription
is a type encapsulating the subscription of a device or group of devices sharing a client identifier to a channel in order to receive push notifications.
Properties
- channel
- the channel that this push notification subscription is associated withType:
String
- deviceId
- the device with this identifier is linked to this channel subscription. When present,
clientId
is never presentType:String
- clientId
- devices with this client identifier are included in this channel subscription. When present,
deviceId
is never presentType:String
PushChannelSubscription constructors
PushChannelSubscription.forDevice
PushChannelSubscription.forDevice(String channel, String deviceId) → PushChannelSubscription
A static factory method to create a PushChannelSubscription
object for a channel and single device.
Parameters
- channel
- channel name linked to this push channel subscriptionType:
String
- deviceId
- the device with this identifier will be linked with this push channel subscriptionType:
String
Returns
A PushChannelSubscription
object
PushChannelSubscription.forClient
PushChannelSubscription.forClient(String channel, String clientId) → PushChannelSubscription
A static factory method to create a PushChannelSubscription
object for a channel and group of devices sharing a client identifier.
Parameters
- channel
- channel name linked to this push channel subscriptionType:
String
- clientId
- devices with this client identifier are included in the new push channel subscriptionType:
String
Returns
A PushChannelSubscription
object
PaginatedResult
A PaginatedResult
is a type that represents a page of results for all message and presence history, stats and REST presence requests. The response from a Ably REST API paginated query is accompanied by metadata that indicates the relative queries available to the PaginatedResult
object.
Properties
- items
- contains the current page of results (for example an Array of
Message
orPresenceMessage
objects for a channel history request)Type:Array <Message, Presence, Stats>
Methods
first
first(callback(ErrorInfo err, PaginatedResult resultPage))
Returns a new PaginatedResult
for the first page of results.
hasNext
Boolean hasNext()
Returns true
if there are more pages available by calling next
and returns false
if this page is the last page available.
isLast
Boolean isLast()
Returns true
if this page is the last page and returns false
if there are more pages available by calling next
available.
next
next(callback(ErrorInfo err, PaginatedResult resultPage))
Returns a new PaginatedResult
loaded with the next page of results. If there are no further pages, then null
is returned.
Example
channel.history(function(err, paginatedResult) {
console.log('Page 0 item 0:' + paginatedResult.items[0].data);
paginatedResult.next(function(err, nextPage) {
console.log('Page 1 item 1: ' + nextPage.items[1].data);
console.log('Last page?: ' + nextPage.isLast());
});
});
CopyCopied!