Diffusion Apple API  6.2.0
Unified Client Library for iOS, tvOS and OS X / macOS
 All Classes Functions Variables Properties Pages
Properties | List of all members
PTDiffusionMutableSessionConfiguration Class Reference

Introduction

A mutable session configuration can be modified prior to being used to define behaviour and policies to use when connecting to Diffusion.

Since
5.6
Inheritance diagram for PTDiffusionMutableSessionConfiguration:
PTDiffusionSessionConfiguration

Properties

NSString * principal
 
PTDiffusionCredentialscredentials
 
NSNumber * reconnectionTimeout
 
id
< PTDiffusionSessionReconnectionStrategy
reconnectionStrategy
 
NSUInteger recoveryBufferSize
 
NSUInteger maximumMessageSize
 
NSUInteger maximumQueueSize
 
NSTimeInterval connectionTimeout
 
NSDictionary * sslOptions
 
PTDiffusionHTTPProxyConfigurationhttpProxyConfiguration
 
- Properties inherited from PTDiffusionSessionConfiguration
NSString * principal
 
PTDiffusionCredentialscredentials
 
NSNumber * reconnectionTimeout
 
id
< PTDiffusionSessionReconnectionStrategy
reconnectionStrategy
 
NSUInteger recoveryBufferSize
 
NSUInteger maximumMessageSize
 
NSUInteger maximumQueueSize
 
NSTimeInterval connectionTimeout
 
NSDictionary * sslOptions
 
PTDiffusionHTTPProxyConfigurationhttpProxyConfiguration
 

Additional Inherited Members

- Class Methods inherited from PTDiffusionSessionConfiguration
(NSUInteger) + defaultRecoveryBufferSize
 
(NSTimeInterval) + defaultConnectionTimeout
 
(NSUInteger) + maximumMessageSizeMinimum
 
(NSUInteger) + defaultMaximumMessageSize
 
(NSUInteger) + defaultMaximumQueueSize
 
- Instance Methods inherited from PTDiffusionSessionConfiguration
(instancetype) - initWithPrincipal:credentials:
 
(BOOL) - isEqualToSessionConfiguration:
 

Property Documentation

- (NSTimeInterval) connectionTimeout
readwritenonatomicassign

The connection timeout.

This constrains the time taken to establish an initial connection to the server. The server is responsible for limiting the overall time taken to complete a connection once it has received the request.

If not explicitly set, defaultConnectionTimeout will be assumed.

Note
If this exceeds one hour (3,600 seconds) a warning will be logged and the connection timeout will be constrained to one hour.
Since
5.7
- (PTDiffusionCredentials*) credentials
readwritenonatomiccopy

The security credentials to use when opening the session.

A value of nil dictates that no credentials will be used when authenticating the session.

Since
5.6
- (PTDiffusionHTTPProxyConfiguration*) httpProxyConfiguration
readwritenonatomiccopy

Configuration of the HTTP Proxy that should be used to make connections to the server.

This allows connection to a server using HTTP CONNECT tunneling through the specified proxy.

A value of nil dictates that a proxy is not used. This is the default.

Since
6.0
- (NSUInteger) maximumMessageSize
readwritenonatomicassign

The maximum message size in bytes.

This constrains the size of messages that may be received from the server and thus the size of any content that can be received. The limit protects against unexpectedly large messages.

Exceptions
NSInvalidArgumentExceptionOn writing to this property if the given size is below the allowable minimum.
See Also
+ defaultMaximumMessageSize (PTDiffusionSessionConfiguration)
+ maximumMessageSizeMinimum (PTDiffusionSessionConfiguration)
Since
6.0
- (NSUInteger) maximumQueueSize
readwritenonatomicassign

The maximum size of the outbound message queue for the connection.

The outbound message queue should be large enough to accommodate all the messages sent to the server. This would include topic updates, messaging and service requests such as registering a handler.

It may be necessary to increase this value for applications that send messages in bursts, or continue to send messages when a session is disconnected and reconnecting. Larger values allow more messages to be queued, and increase the memory footprint of the session.

If the outbound message queue fills, sending a message will cause the session to close with an error.

See Also
+ defaultMaximumQueueSize (PTDiffusionSessionConfiguration)
Since
6.0
- (NSString*) principal
readwritenonatomiccopy

The security principal to use when opening the session.

A value of nil dictates that no principal name will be associated with the session, indicating anonymous authentication.

Since
5.6
- (id<PTDiffusionSessionReconnectionStrategy>) reconnectionStrategy
readwritenonatomicassign

The reconnection strategy that will be used on connection failure.

A value of nil when a valid reconnectionTimeout has been set dictates that the default reconnection strategy will be employed.

Since
5.6
- (NSNumber*) reconnectionTimeout
readwritenonatomicassign

The reconnection timeout in seconds that will be used on connection failure.

The reconnection timeout boxed by this number is accessed as a double representing an NSTimeInterval.

A value of nil or a negative boxed value both dictate that reconnection will be disabled.

Since
5.6
- (NSUInteger) recoveryBufferSize
readwritenonatomicassign

The recovery buffer size in messages; can be zero.

If the server is configured to support reconnection, a session established with a non-zero reconnection time retains a buffer of sent messages. If the session disconnects and reconnects, this buffer is used to re-send messages that the server has not received.

Higher values increase the chance of successful reconnection, but increase the per-session memory footprint.

See Also
+ defaultRecoveryBufferSize (PTDiffusionSessionConfiguration)
Since
6.0
- (NSDictionary*) sslOptions
readwritenonatomiccopy

Security settings to be applied to the underlying transport streams for SSL/TLS encrypted connections.

A value of nil or an empty dictionary indicates that default settings, as defined by the host operating system, will be applied.

Supported keys are documented by Apple under 'CFStream Property SSL Settings Constants' in their Core Foundation CFStream Reference.

For example, a rudimentary approach to allowing otherwise disallowed self-signed certificates could be to disable validation of the certificate chain entirely:

configuration.sslOptions =
    [NSDictionary dictionaryWithObject:kCFBooleanFalse
                                forKey:kCFStreamSSLValidatesCertificateChain];
Since
5.7.1