private void Connection_StateChanged(EndpointConnection con, Communication.DeviceConnectionState newState) { if (newState == DeviceConnectionState.Error) { DeviceState = DeviceState.ConnectError; } }
public EndpointCommunication(EndpointConnection connection) { this.connection = connection ?? throw new ArgumentNullException(nameof(connection)); chromeCastDestination = string.Empty; chromeCastSource = string.Format("client-8{0}", new Random().Next(10000, 99999)); connection.StateChanged += Connection_StateChanged; connection.MessageReceived += Connection_MessageReceived; }
private async void Connection_MessageReceived(EndpointConnection con, CastMessage castMessage) { var message = JsonConvert.DeserializeObject <PayloadMessageBase>(castMessage.PayloadUtf8); switch (message.@type) { case "RECEIVER_STATUS": OnReceiveReceiverStatus(JsonConvert.DeserializeObject <MessageReceiverStatus>(castMessage.PayloadUtf8)); break; case "MEDIA_STATUS": OnReceiveMediaStatus(JsonConvert.DeserializeObject <MessageMediaStatus>(castMessage.PayloadUtf8)); break; case "PING": await PongAsync(); break; case "PONG": var pongMessage = JsonConvert.DeserializeObject <PayloadMessageBase>(castMessage.PayloadUtf8); break; case "CLOSE": var closeMessage = JsonConvert.DeserializeObject <PayloadMessageBase>(castMessage.PayloadUtf8); DeviceState = DeviceState.Closed; //if (applicationLogic.GetAutoRestart()) //{ // await Task.Delay(5000); // OnClickDeviceButton(DeviceState.Closed); //} break; case "LOAD_FAILED": var loadFailedMessage = JsonConvert.DeserializeObject <MessageLoadFailed>(castMessage.PayloadUtf8); DeviceState = DeviceState.LoadFailed; break; case "LOAD_CANCELLED": var loadCancelledMessage = JsonConvert.DeserializeObject <MessageLoadCancelled>(castMessage.PayloadUtf8); DeviceState = DeviceState.LoadCancelled; break; case "INVALID_REQUEST": var invalidRequestMessage = JsonConvert.DeserializeObject <PayloadMessageBase>(castMessage.PayloadUtf8); DeviceState = DeviceState.InvalidRequest; break; default: break; } }