Class: Ably::Models::ConnectionDetails

Inherits:
Object
  • Object
show all
Includes:
Ably::Modules::ModelCommon
Defined in:
lib/ably/models/connection_details.rb

Overview

ConnectionDetails are optionally passed to the client library in the CONNECTED ProtocolMessage#connectionDetails attribute to inform the client about any constraints it should adhere to and provide additional metadata about the connection. For example, if a request is made to publish a message that exceeds the maxMessageSize, the client library can reject the message immediately, without communicating with the Ably service

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Ably::Modules::ModelCommon

#==, #[], #as_json, #to_json

Methods included from Ably::Modules::MessagePack

#to_msgpack

Constructor Details

#initialize(attributes = {}) ⇒ ConnectionDetails

Returns a new instance of ConnectionDetails.

Parameters:

  • attributes (Hash) (defaults to: {})

Options Hash (attributes):

  • :client_id (String)

    contains the client ID assigned to the connection

  • :connection_key (String)

    the connection secret key string that is used to resume a connection and its state

  • :max_message_size (Integer)

    maximum individual message size in bytes

  • :max_frame_size (Integer)

    maximum size for a single frame of data sent to Ably. This restriction applies to a ProtocolMessage sent over a realtime connection, or the total body size for a REST request

  • :max_inbound_rate (Integer)

    maximum allowable number of requests per second from a client

  • :connection_state_ttl (Integer)

    duration in seconds that Ably will persist the connection state when a Realtime client is abruptly disconnected

  • :server_id (String)

    unique identifier of the Ably server where the connection is established



33
34
35
36
37
# File 'lib/ably/models/connection_details.rb', line 33

def initialize(attributes = {})
  @hash_object = IdiomaticRubyWrapper(attributes.clone)
  hash[:connection_state_ttl] = (hash[:connection_state_ttl].to_f / 1000).round if hash[:connection_state_ttl]
  hash.freeze
end

Instance Attribute Details

#hashHash (readonly)

Returns Access the token details Hash object ruby’fied to use symbolized keys.

Returns:

  • (Hash)

    Access the token details Hash object ruby’fied to use symbolized keys



51
52
53
# File 'lib/ably/models/connection_details.rb', line 51

def hash
  @hash_object
end

Instance Method Details

#has_client_id?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/ably/models/connection_details.rb', line 45

def has_client_id?
  hash.has_key?(:client_id)
end