internal RealtimeChannels(AblyRealtime realtimeClient, Connection connection, IMobileDevice mobileDevice = null) { _realtimeClient = realtimeClient; Logger = realtimeClient.Logger; connection.InternalStateChanged += ConnectionStateChange; _mobileDevice = mobileDevice; }
internal RestChannel(AblyRest ablyRest, string name, ChannelOptions options, IMobileDevice mobileDevice = null) { Name = name; _ablyRest = ablyRest; _options = options; _basePath = $"/channels/{name.EncodeUriPart()}"; if (mobileDevice != null) { _pushChannel = new PushChannel(name, ablyRest); } }
internal AblyRest(ClientOptions clientOptions, IMobileDevice mobileDevice) { Options = clientOptions; InitializeAbly(mobileDevice); }
internal AblyRealtime(ClientOptions options, IMobileDevice mobileDevice) : this(options, CreateRestFunc, mobileDevice) { }
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(); } }
internal RestChannels(AblyRest restClient, IMobileDevice mobileDevice = null) { _ablyRest = restClient; _mobileDevice = mobileDevice; }
internal AblyRest GetRestClient(Func <AblyRequest, Task <AblyResponse> > handleRequestFunc = null, Action <ClientOptions> setOptionsAction = null, IMobileDevice mobileDevice = null) { var options = new ClientOptions(ValidKey) { UseBinaryProtocol = false }; setOptionsAction?.Invoke(options); return(GetRestClient(handleRequestFunc, options, mobileDevice)); }
internal AblyRest GetRestClient(Func <AblyRequest, Task <AblyResponse> > handleRequestFunc, ClientOptions options, IMobileDevice mobileDevice = null) { var client = new AblyRest(options, mobileDevice); client.ExecuteHttpRequest = request => { Requests.Add(request); if (handleRequestFunc != null) { return(handleRequestFunc(request)); } return(DefaultResponse.ToTask()); }; return(client); }
private static AblyRealtime GetRealtimeClientWithFakeMessageHandler(ClientOptions options = null, FakeHttpMessageHandler fakeMessageHandler = null, IMobileDevice mobileDevice = null) { var clientOptions = options ?? new ClientOptions(ValidKey); clientOptions.SkipInternetCheck = true; // This is for the Unit tests var client = new AblyRealtime(clientOptions, mobileDevice); if (fakeMessageHandler != null) { client.RestClient.HttpClient.CreateInternalHttpClient(TimeSpan.FromSeconds(10), fakeMessageHandler); } return(client); }
internal AblyRealtime GetRealtimeClient(ClientOptions options = null, Func <AblyRequest, Task <AblyResponse> > handleRequestFunc = null, IMobileDevice mobileDevice = null) { var clientOptions = options ?? new ClientOptions(ValidKey); clientOptions.SkipInternetCheck = true; // This is for the Unit tests var client = new AblyRealtime(clientOptions, (opts, device) => GetRestClient(handleRequestFunc, clientOptions, device), mobileDevice); return(client); }