Connection

The Connection object exposes the following public properties:

A unique public identifier String for this connection, used to identify this member in presence events and messages.

The current state String of this Connection. See the Connection states for more information.

When a connection failure occurs this property contains the ErrorInfo.

A unique private connection key String used to recover or resume a connection, assigned by Ably. When recovering a connection explicitly, the recoveryKey is used in the recover client options as it contains both the key and the last message serial.

This private connection key can also be used by other REST clients to publish on behalf of this client. See the publishing over REST on behalf of a realtime client documentation for more info.

The recovery key String can be used by another client to recover this connection’s state in the recover client options property. See connection state recover options for more information.

The serial number Integer of the last message to be received on this connection, used automatically by the library when recovering or resuming a connection. When recovering a connection explicitly, the recoveryKey is used in the recover client options as it contains both the key and the last message serial.

connect()

Explicitly calling connect is unnecessary unless the ClientOptions attribute autoConnect is false. Unless already connected or connecting, this method causes the connection to open, entering the connecting state.

close()

Causes the connection to close, entering the closing state. Once closed, the library will not attempt to re-establish the connection without an explicit call to connect().

There are three overloaded versions of this method:

on(String event, listener(ConnectionStateChange stateChange))

Register the given listener for the specified ConnectionEvent on the Connection. The listener is passed a ConnectionStateChange object that contains the current state, previous state, and an optional reason for the event or state change.

on(String[] events, listener(ConnectionStateChange stateChange))

Same as above, but registers multiple listeners, one for each event in the array.

on(listener(ConnectionStateChange stateChange))

Register the given listener for all ConnectionEvents on the Connection. The listener is passed a ConnectionStateChange object that contains the current state, previous state, the event, and an optional reason for the event or state change. (For the update event, the current and previous states will be the same).

If an exception is thrown in the listener and bubbles up to the event emitter, it will be caught and logged at error level, so as not to affect other listeners for the same event

Parameters

event(s)
the connection event(s) to subscribe toType: String or String[]
listener
is a function of the form function(stateChange) to be notified for matching events

There are two overloaded versions of this method:

once(String event, listener(ConnectionStateChange stateChange))

Register the given listener for a single occurrence of the specified ConnectionEvent on the Connection. Once the listener has been called, it is removed as a registered listener and will not be called again. The listener is passed a ConnectionStateChange object that contains the current state, previous state, the event, and an optional reason for the state change. (For the update event, the current and previous states will be the same).

once(listener(ConnectionStateChange stateChange))

Register the given listener for a single occurrence of any ConnectionEvent on the Connection. Once the listener has been called, it is removed as a registered listener and will not be called again. The listener is passed a ConnectionStateChange object that contains the current state, previous state, and an optional reason for the state change. (For the update event, the current and previous states will be the same).

If an exception is thrown in the listener and bubbles up to the event emitter, it will be caught and logged at error level, so as not to affect other listeners for the same event

Parameters

event(s)
the connection event(s) to subscribe toType: String or String[]
listener
is a function of the form function(stateChange) to be notified for a single occurrence of a matching event

There are six overloaded versions of this method:

off(String event, listener)

Remove the given listener for the ConnectionEvent.

off(listener)

Remove the given listener for all ConnectionEvents

off(String[] states, listener)

Removes the given listener from all ConnectionEvents in the array.

off(String state)

Removes all listeners for a given ConnectionEvents.

off(String[] states)

Removes all listeners for all ConnectionEvents in the array.

off()

Removes all listeners (including both those registered against specific events and those registered without an event).

Parameters

event(s)
the connection event(s) to unsubscribe fromType: String or String[]
listener
is the listener function to be removed

ping(callback(ErrorInfo err, Number responseInMilliseconds))

When connected, sends a heartbeat ping to the Ably server and executes the callback with any error and the response time in milliseconds when a heartbeat ping request is echoed from the server. This can be useful for measuring true round-trip latency to the connected Ably server.

ConnectionState is a String with a value matching any of the Realtime Connection states.

JavaScript v2.6
var ConnectionStates = [ 'initialized', 'connecting', 'connected', 'disconnected', 'suspended', 'closing', 'closed', 'failed' ]
Copied!

ConnectionEvent is a String that can be emitted as an event on the Connection object; either a Realtime Connection state or an update event.

JavaScript v2.6
var ConnectionEvents = [ 'initialized', 'connecting', 'connected', 'disconnected', 'suspended', 'closing', 'closed', 'failed', 'update' ]
Copied!

A ConnectionStateChange is a type encapsulating state change information emitted by the Connection object. See Connection#on to register a listener for one or more events.

Properties

current
the new stateType: State String
previous
the previous state. (for the update event, this will be equal to the current state)Type: State String
event
the event that triggered this state changeType: ConnectionEvent
reason
an ErrorInfo containing any information relating to the transitionType: ErrorInfo
retryIn
Duration upon which the library will retry a connection where applicable, as millisecondsType: Integer

A LastConnectionDetails object provides details on the last connection in a browser environment persisted when the window beforeunload fired. This object is provided to the callback specified in the recover attribute of ClientOptions. The callback in turn instructs the client library whether the connection should be recovered or not. See connection state recovery for more information.

Please note that as sessionStorage is used to persist the LastConnectionDetails between page reloads, it is only available for pages in the same origin and top-level browsing context.

Properties

recoveryKey
An opaque string obtained from the recoveryKey attribute of the Connection object before the page was unloaded. This property is used by the library to recover the connectionType: String
disconnectedAt
the time at which the previous library was abruptly disconnected before the page was unloaded. This is represented as milliseconds since epochType: Integer
location
a clone of location object of the previous page’s document object before the page was unloaded. A common use case for this attribute is to ensure that the previous page URL is the same as the current URL before allowing the connection to be recovered. For example, you may want the connection to be recovered only for page reloads, but not when a user navigates to a different pageType: String
clientId
the clientId of the client’s Auth object before the page was unloaded. A common use case for this attribute is to ensure that the current logged in user’s clientId matches the previous connection’s clientId before allowing the connection to be recovered. Ably prohibits changing a clientId for an existing connection, so any mismatch in clientId during a recover will result in the connection moving to the failed stateType: String
Select...