private void ReceivedResponseSubscription(object sender, BasicDeliverEventArgs ea) { var response = Encoding.UTF8.GetString(ea.Body); var deserialized = JsonConvert.DeserializeObject <CalculatePiResponse>(response); ReceivedResponse.Invoke(sender, new ResponseEventArgs(deserialized)); Console.WriteLine("[ReceivedResponseSubscription] recived response {0}", response); }
public void RaiseResponse(byte[] respData) { if (IsRespondable && respData != null) { Response = PacketIdToResponseObjectMapper[PacketId](this); Response.Deserialize(respData); } IsReceived = true; ReceivedResponse?.Invoke(this, Response); }
private void OnLineReceived(string line) { string[] data = line.Split(' '); //begin with "@": treat as event message int eventId = 0; if (data.Length > 0 && data[0].Length > 1 && data[0][0] == '@' && int.TryParse(data[0].Substring(1), out eventId) ) { var args = new string[data.Length - 1]; Array.Copy(data, 1, args, 0, args.Length); var eventMessage = new UArmEventMessage(eventId, args); ReceivedEvent?.Invoke(this, new UArmEventMessageEventArgs(eventMessage)); return; } //begin with "$": treas as response int id = -1; if (data.Length > 1 && data[0].Length > 1 && data[0][0] == '$' && int.TryParse(data[0].Substring(1), out id)) { var args = new string[data.Length - 1]; Array.Copy(data, 1, args, 0, args.Length); var response = new UArmResponse(id, args); //Terminate waiting process if pending exists if (_pendingCommandIds.ContainsKey(id)) { _responses[id] = response; _pendingCommandIds[id].Cancel(); } ReceivedResponse?.Invoke(this, new UArmResponseEventArgs(response)); return; } //Unknown data }
public void Update() { if (NetworkClient != null && NetworkClient.Status == NetPeerStatus.Running) { NetIncomingMessage msg; while ((msg = NetworkClient.ReadMessage()) != null) { switch (msg.MessageType) { case NetIncomingMessageType.StatusChanged: { NetConnectionStatus status = (NetConnectionStatus)msg.ReadByte(); if (status == NetConnectionStatus.Connected) { NetOutgoingMessage outMsg = NetworkClient.CreateMessage(); outMsg.Write((byte)CommandType.GetChannelInfo); outMsg.Write(channelInfos[currentChannel].channelId); NetworkClient.SendMessage(outMsg, NetDeliveryMethod.ReliableOrdered, 0); } else if (status == NetConnectionStatus.Disconnected) { ChannelException?.Invoke(this, new Exception("Channel refused connection!")); Abort(); } }; break; case NetIncomingMessageType.Data: { if ((CommandType)msg.ReadByte() == CommandType.GetChannelInfo) { ChannelInfo received = new ChannelInfo(msg); if (received.channelId == -1) { ChannelException?.Invoke(this, new Exception($"Channel with ID {channelInfos[currentChannel].channelId} not found!")); Abort(); return; } received.ip = channelInfos[currentChannel].ip; received.port = channelInfos[currentChannel].port; ReceivedResponse?.Invoke(this, received); if (channelInfos.Count - 1 > currentChannel) { currentChannel++; NetOutgoingMessage outMsg = NetworkClient.CreateMessage(); outMsg.Write((byte)CommandType.GetChannelInfo); outMsg.Write(channelInfos[currentChannel].channelId); NetworkClient.SendMessage(outMsg, NetDeliveryMethod.ReliableOrdered, 0); } else { Abort(); } } }; break; case NetIncomingMessageType.WarningMessage: Misc.Logger.Warning(msg.ReadString()); break; case NetIncomingMessageType.ErrorMessage: Misc.Logger.Error(msg.ReadString()); break; case NetIncomingMessageType.VerboseDebugMessage: case NetIncomingMessageType.DebugMessage: Misc.Logger.Info(msg.ReadString()); break; default: Console.WriteLine("Unhandled type: " + msg.MessageType); break; } } } }
internal void OnReceivedResponse(RestClient client, RestCallData callData) { ReceivedResponse?.Invoke(client, new RestClientEventArgs(callData)); }