async void lightSwitchClient_ConnectionClosed(object sender, LightSwitchClientEventArgs args) { await Log.ReportInfoFormatAsync(CancellationToken, "Client {0} disconnected", args.LightSwitchClient.RemoteEndPoint); if (_lightSwitchClients.Contains(args.LightSwitchClient)) _lightSwitchClients.Remove(args.LightSwitchClient); args.LightSwitchClient.OnConnectionEstabilished -= lightSwitchClient_ConnectionEstabilished; args.LightSwitchClient.OnConnectionClosed -= lightSwitchClient_ConnectionClosed; args.LightSwitchClient.OnDataReceived -= lightSwitchClient_DataReceived; args.LightSwitchClient.OnDataSent -= lightSwitchClient_DataSent; args.LightSwitchClient.OnCmdAList -= lightSwitchClient_onCmdAList; args.LightSwitchClient.OnCmdDevice -= lightSwitchClient_onCmdDevice; args.LightSwitchClient.OnCmdIphone -= lightSwitchClient_onCmdIphone; args.LightSwitchClient.OnCmdList -= lightSwitchClient_onCmdList; args.LightSwitchClient.OnCmdPassword -= lightSwitchClient_onCmdPassword; args.LightSwitchClient.OnCmdScene -= lightSwitchClient_onCmdScene; args.LightSwitchClient.OnCmdServer -= lightSwitchClient_onCmdServer; args.LightSwitchClient.OnCmdSList -= lightSwitchClient_onCmdSList; args.LightSwitchClient.OnCmdTerminate -= lightSwitchClient_onCmdTerminate; args.LightSwitchClient.OnCmdThermMode -= lightSwitchClient_onCmdThermMode; args.LightSwitchClient.OnCmdThermTemp -= lightSwitchClient_onCmdThermTemp; args.LightSwitchClient.OnCmdVersion -= lightSwitchClient_onCmdVersion; args.LightSwitchClient.OnCmdZList -= lightSwitchClient_onCmdZList; args.LightSwitchClient.OnCmdZone -= lightSwitchClient_onCmdZone; }
async void lightSwitchClient_ConnectionEstabilished(object sender, LightSwitchClientEventArgs args) { if (_lightSwitchClients.Count > MaxConnectionsSettings) { await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateMsgCmd("Max clients reached!")); args.LightSwitchClient.Disconnect(); } await Log.ReportInfoFormatAsync(CancellationToken, "Client {0} connected", args.LightSwitchClient.RemoteEndPoint); await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateInfoCmdFormat("LightSwitch zVirtualScenes Plug-in (Active Connections {0}){1}", _lightSwitchClients.Count, Environment.NewLine)); }
async void lightSwitchClient_onCmdServer(object sender, LightSwitchClientEventArgs args) { if (!args.LightSwitchClient.IsAuthenticated) args.LightSwitchClient.Disconnect(); await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateVersionCmd(Utils.ApplicationNameAndVersion)); }
void lightSwitchClient_onCmdTerminate(object sender, LightSwitchClientEventArgs args) { args.LightSwitchClient.Disconnect(); }
async void lightSwitchClient_onCmdList(object sender, LightSwitchClientEventArgs args) { if (!args.LightSwitchClient.IsAuthenticated) args.LightSwitchClient.Disconnect(); await Log.ReportInfoFormatAsync(CancellationToken, "Received [{0}] User requested device list", args.LightSwitchClient.RemoteEndPoint); await SendDeviceListAsync(args.LightSwitchClient); await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateEndListCmd()); }
async void lightSwitchClient_onCmdZList(object sender, LightSwitchClientEventArgs args) { await Log.ReportInfoFormatAsync(CancellationToken, "Received [{0}] User requested zone list", args.LightSwitchClient.RemoteEndPoint); await SendZoneListAsync(args.LightSwitchClient); await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateEndListCmd()); }
async void lightSwitchClient_onCmdIphone(object sender, LightSwitchClientEventArgs args) { args.LightSwitchClient.IsAuthenticated = false; await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateCookieCmd(args.LightSwitchClient.Nonce.ToString())); }