internal AblyRealtime(ClientOptions options, Func <ClientOptions, AblyRest> createRestFunc) { CaptureSynchronizationContext(options); RestClient = createRestFunc(options); Channels = new RealtimeChannels(this); Connection = new Connection(this); Connection.Initialise(); if (options.AutoConnect) { Connect(); } }
internal AblyRealtime(ClientOptions options, Func <ClientOptions, AblyRest> createRestFunc) { Logger = options.Logger; CaptureSynchronizationContext(options); RestClient = createRestFunc != null?createRestFunc.Invoke(options) : new AblyRest(options); Channels = new RealtimeChannels(this); Connection = new Connection(this, options.NowFunc, options.Logger); Connection.Initialise(); RestClient.AblyAuth.AuthUpdated += Connection.ConnectionManager.OnAuthUpdated; if (options.AutoConnect) { Connect(); } }
internal AblyRealtime(ClientOptions options, Func <ClientOptions, IMobileDevice, AblyRest> createRestFunc, IMobileDevice mobileDevice = null) { if (options.Logger != null) { Logger = options.Logger; } Logger.LogLevel = options.LogLevel; if (options.LogHandler != null) { Logger.LoggerSink = options.LogHandler; } CaptureSynchronizationContext(options); RestClient = createRestFunc != null?createRestFunc.Invoke(options, mobileDevice) : new AblyRest(options, mobileDevice); Push = new PushRealtime(RestClient, Logger); Connection = new Connection(this, options.NowFunc, options.Logger); Connection.Initialise(); if (options.AutomaticNetworkStateMonitoring) { IoC.RegisterOsNetworkStateChanged(); } Channels = new RealtimeChannels(this, Connection, mobileDevice); RestClient.AblyAuth.OnAuthUpdated = ConnectionManager.OnAuthUpdated; State = new RealtimeState(options.GetFallbackHosts()?.Shuffle().ToList(), options.NowFunc); Workflow = new RealtimeWorkflow(this, Logger); Workflow.Start(); if (options.AutoConnect) { Connect(); } }