private static void _PushClient_RegisterClientEnded(object sender, RegisterClientEndedEventArgs <int> e) { if (e.RegisterClientResponse.Success) { Console.WriteLine("Registration completed"); _RegistrationOk = true; } else { Console.WriteLine("Registration failed"); } Console.WriteLine(); Console.WriteLine(); _ResetEvent.Set(); }
public async void ConnectAsync(AuthenticationToken <T> authToken) { await Task.Run(() => { _AuthenticationToken = authToken; RegisterClientResponse RegisterClientRsp; try { EventArgs OnRegisterClientEA = new EventArgs(); OnRegisterClientStarted(OnRegisterClientEA); ConfigReader CR = new ConfigReader(); _SocketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress MyIPAddress = IPAddress.Parse(CR.Get(ConfigReaderKeys.KeyConnectIPAddress, Constants.DefaultConnectIPAddress)); IPEndPoint MyEndPoint = new IPEndPoint(MyIPAddress, CR.Get(ConfigReaderKeys.KeyConnectPort, Constants.DefaultConnectPort)); _SocketClient.Connect(MyEndPoint); RegisterClient <T> RegisterClientMsg = new RegisterClient <T>(); RegisterClientMsg.AuthToken = _AuthenticationToken; SocketHelper.SendObject(_SocketClient, RegisterClientMsg); //TODO: Timeout for response? //TODO: Add messages history to response? RegisterClientRsp = (RegisterClientResponse)SocketHelper.ReceiveObject(_SocketClient); if (RegisterClientRsp.Success) { _ClientRunning = true; ManagePushMessagesAsync(); } } catch { RegisterClientRsp = new RegisterClientResponse(); RegisterClientRsp.ErrorCode = -1; RegisterClientRsp.Success = false; RegisterClientRsp.Message = "Unable to connect to the server."; } RegisterClientEndedEventArgs <T> OnRegisterClientEndedEA = new RegisterClientEndedEventArgs <T>(RegisterClientRsp); OnRegisterClientEnded(OnRegisterClientEndedEA); return; }); }
protected virtual void OnRegisterClientEnded(RegisterClientEndedEventArgs <T> e) { RegisterClientEndedDelegate handler = RegisterClientEnded; if (handler != null) { foreach (RegisterClientEndedDelegate singleCast in handler.GetInvocationList()) { ISynchronizeInvoke syncInvoke = singleCast.Target as ISynchronizeInvoke; if ((syncInvoke != null) && (syncInvoke.InvokeRequired)) { syncInvoke.Invoke(singleCast, new object[] { this, e }); } else { singleCast(this, e); } } } }