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

Attributes included from Ably::Modules::ModelCommon

#hash

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
38
39
# File 'lib/ably/models/connection_details.rb', line 33

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

Instance Attribute Details

#attributesHash (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



53
54
55
# File 'lib/ably/models/connection_details.rb', line 53

def attributes
  @hash_object
end

Instance Method Details

#has_client_id?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/ably/models/connection_details.rb', line 47

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