History
Channel object
The Rest Channel object exposes the following public method to obtain Message history.
Methods
history
history(Object params?): Promise<PaginatedResult<Message>>
Gets a paginated set of historical messages for this channel.
Parameters
- params
- an optional object containing the query parameters, as specified below.
params parameters
- start
- beginning of time earliest time in milliseconds since the epoch for any messages retrievedType:
Number - end
- current time latest time in milliseconds since the epoch for any messages retrievedType:
Number - direction
- backwards
forwardsorbackwardsType:String - limit
- 100 maximum number of messages to retrieve up to 1,000Type:
Number
Returns
Returns a promise. On success, the promise is fulfilled with a PaginatedResult encapsulating an array of Message objects corresponding to the current page of results. PaginatedResult supports pagination using next() and first() methods. On failure, the promise is rejected with an ErrorInfo object that details the reason why it was rejected.
Presence object
Rest Presence object exposes the following public method to obtain presence event history such as enter, update and leave events. These events are represented as PresenceMessage objects.
Methods
history
history(Object params?): Promise<PaginatedResult<PresenceMessage>>
Gets a paginated set of historical presence events for this channel.
Parameters
- params
- an optional object containing the query parameters, as specified below.
params parameters
- start
- beginning of time earliest time in milliseconds since the epoch for any presence events retrievedType:
Number - end
- current time latest time in milliseconds since the epoch for any presence events retrievedType:
Number - direction
- backwards
forwardsorbackwardsType:String - limit
- 100 maximum number of presence events to retrieve up to 1,000Type:
Number
Returns
Returns a promise. On success, the promise is fulfilled with a PaginatedResult encapsulating an array of PresenceMessage objects corresponding to the current page of results. PaginatedResult supports pagination using next() and first() methods. On failure, the promise is rejected with an ErrorInfo object that details the reason why it was rejected.
Related types
Message
A Message represents an individual message that is sent to or received from Ably.
name
The event name, if provided. Type: String
data
The message payload, if provided.Type: String, StringBuffer, JSON Object
extras
Metadata and/or ancillary payloads, if provided. Valid payloads include push, headers(a map of strings to strings for arbitrary customer-supplied metadata), ephemeral, and privileged objects.Type: JSON Object
id
A Unique ID assigned by Ably to this message.Type: String
clientId
The client ID of the publisher of this message.Type: String
connectionId
The connection ID of the publisher of this message.Type: String
connectionKey
A connection key, which can optionally be included for a REST publish as part of the publishing on behalf of a realtime client functionalityType: String
timestamp
Timestamp when the message was first received by the Ably, as milliseconds since the epoch.Type: Integer
encoding
This will typically be empty as all messages received from Ably are automatically decoded client-side using this value. However, if the message encoding cannot be processed, this attribute will contain the remaining transformations not applied to the data payload.Type: String
action
The action type of the message, one of the MessageAction enum values.Type: int enum { MESSAGE_CREATE, MESSAGE_UPDATE, MESSAGE_DELETE, META, MESSAGE_SUMMARY }
serial
A server-assigned identifier that will be the same in all future updates of this message. It can be used to add annotations to a message. Serial will only be set if you enable annotations in channel rules .Type: String
annotations
An object containing information about annotations that have been made to the object.Type: MessageAnnotations
Message constructors
Message.fromEncoded
Message.fromEncoded(Object encodedMsg, ChannelOptions channelOptions?) → Message
A static factory method to create a Message from a deserialized Message-like object encoded using Ably’s wire protocol.
Parameters
- encodedMsg
- a
Message-like deserialized object.Type:Object - channelOptions
- an optional
ChannelOptions. If you have an encrypted channel, use this to allow the library can decrypt the data.Type:Object
Returns
A Message object
Message.fromEncodedArray
Message.fromEncodedArray(Object[] encodedMsgs, ChannelOptions channelOptions?) → Message[]
A static factory method to create an array of Messages from an array of deserialized Message-like object encoded using Ably’s wire protocol.
Parameters
- encodedMsgs
- an array of
Message-like deserialized objects.Type:Array - channelOptions
- an optional
ChannelOptions. If you have an encrypted channel, use this to allow the library can decrypt the data.Type:Object
Returns
An Array of Message objects
PresenceMessage
A PresenceMessage represents an individual presence update that is sent to or received from Ably.
Properties
- action
- the event signified by a PresenceMessage. See
Presence actionType:int enum { ABSENT, PRESENT, ENTER, LEAVE, UPDATE } - data
- The presence update payload, if provided
String,StringBuffer,JSON Object - extras
- Metadata and/or ancillary payloads, if provided. The only currently valid payloads for extras are the
push,refandprivilegedobjects.Type:JSON Object - id
- Unique ID assigned by Ably to this presence updateType:
String - clientId
- The client ID of the publisher of this presence updateType:
String - connectionId
- The connection ID of the publisher of this presence updateType:
String - timestamp
- Timestamp when the presence update was received by Ably, as milliseconds since the epoch.Type:
Integer - encoding
- This will typically be empty as all presence updates received from Ably are automatically decoded client-side using this value. However, if the message encoding cannot be processed, this attribute will contain the remaining transformations not applied to the
datapayloadType:String
PresenceMessage constructors
PresenceMessage.fromEncoded
PresenceMessage.fromEncoded(Object encodedPresMsg, ChannelOptions channelOptions?) → PresenceMessage
A static factory method to create a PresenceMessage from a deserialized PresenceMessage-like object encoded using Ably’s wire protocol.
Parameters
- encodedPresMsg
- a
PresenceMessage-like deserialized object.Type:Object - channelOptions
- an optional
ChannelOptions. If you have an encrypted channel, use this to allow the library can decrypt the data.Type:Object
Returns
A PresenceMessage object
PresenceMessage.fromEncodedArray(Object[] encodedPresMsgs, ChannelOptions channelOptions?) → PresenceMessage[]
A static factory method to create an array of PresenceMessages from an array of deserialized PresenceMessage-like object encoded using Ably’s wire protocol.
Parameters
- encodedPresMsgs
- an array of
PresenceMessage-like deserialized objects.Type:Array - channelOptions
- an optional
ChannelOptions. If you have an encrypted channel, use this to allow the library can decrypt the data.Type:Object
Returns
An Array of PresenceMessage objects
Presence action
Presence action is a String with a value matching any of the Realtime Presence states & events.
var PresenceActions = [
'absent', // (reserved for internal use)
'present',
'enter',
'leave',
'update'
]
CopyCopied!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
Methods
first
first(): Promise<PaginatedResult>
Returns a promise. On success, the promise is fulfilled with a new PaginatedResult for the first page of results. On failure, the promise is rejected with an ErrorInfo object that details the reason why it was rejected.
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(): Promise<PaginatedResult | null>
Returns a promise. On success, the promise is fulfilled with a new PaginatedResult loaded with the next page of results. If there are no further pages, then null is returned. On failure, the promise is rejected with an ErrorInfo object that details the reason why it was rejected.
current
current(): Promise<PaginatedResult>
Returns a promise. On success, the promise is fulfilled with a new PaginatedResult loaded with the current page of results. On failure, the promise is rejected with an ErrorInfo object that details the reason why it was rejected.
Example
const paginatedResult = await channel.history();
console.log('Page 0 item 0:' + paginatedResult.items[0].data);
const nextPage = await paginatedResult.next();
console.log('Page 1 item 1: ' + nextPage.items[1].data);
console.log('Last page?: ' + nextPage.isLast());
CopyCopied!