/// <summary> /// Handler for the IChannel.IncomingMessage event /// </summary> /// <param name="msg">The message received</param> /// <param name="channel">The channel that received the message</param> public void OnChannelIncomingMessage(OPSTelegrama msg, IChannel channel) { if (ValidateMessage(msg)) { string ip; int port; TcpIpUri.UriAsAddressPort(channel.Uri, out ip, out port); IPacketizer packetizer = msg.Packetizer; FecsBecsHeader hd = new FecsBecsHeader(channel.Uri, ip, packetizer.PacketInfo); for (int i = 0; i < packetizer.PacketsCount; i++) { _outQueue.Send(hd, packetizer[i]); FecsMain.Logger.AddLog( string.Format("[OutputQueueFecsAdapter]:Message received from {0} [{1}]", channel.Uri, msg.XmlData), LoggerSeverities.Info); } } else { FecsMain.Logger.AddLog( string.Format("[OutputQueueFecsAdapter]:Message not validated from {0} [{1}]", channel.Uri, msg.XmlData), LoggerSeverities.Error); NackMessage(msg, channel); } }
public TcpClientChannel(IPEndPoint remoteEP, int channelId, IPacketizer packetizer) : base(channelId) { if(remoteEP == null) throw new ArgumentNullException("remoteEP"); //设置远程网络端点 _remoteEndPoint = remoteEP; //设置协议解析器 this.Packetizer = packetizer; //初始化最后连接时间 _lastConnectTime = new DateTime(1900, 1, 1); //创建连接信号量对象 _connectWaitHandle = new ManualResetEventSlim(true); }
public TcpClientChannel(IPEndPoint remoteEP, int channelId, IPacketizer packetizer) : base(channelId) { if (remoteEP == null) { throw new ArgumentNullException("remoteEP"); } //设置远程网络端点 _remoteEndPoint = remoteEP; //设置协议解析器 this.Packetizer = packetizer; //初始化最后连接时间 _lastConnectTime = new DateTime(1900, 1, 1); //创建连接信号量对象 _connectWaitHandle = new ManualResetEventSlim(true); }
private void OnChannelIncomingMessage(OPSTelegrama packet, IChannel channel) { if (MessageArrived != null) { if (packet != null) { XmlDocument doc = new XmlDocument(); doc.LoadXml(packet.XmlData); XmlNode root = doc; if (root.ChildNodes.Count > 0) { /// Is a packet containing messages UpdateAddressCache(packet, channel.Uri); IPacketizer pt = packet.Packetizer; for (int i = 0; i < pt.PacketsCount; i++) { string msg = pt[i]; Debug.WriteLine("MsgProc - Arrived: " + msg); MessageAccess acc = new MessageAccess(msg); string msgId = acc.GetMessageId(); MessageArrived(Convert.ToDecimal(msgId), RequestOutcome.SendOK, msg, this, packet.Packetizer.PacketInfo.SourceId); } } else { /// Is an ACK eventually containing response data MessageAccess acc = new MessageAccess(packet.XmlData); string msgId = acc.GetMessageId(); MessageArrived(Convert.ToDecimal(msgId), RequestOutcome.SendOK, packet.XmlData, this, packet.Packetizer.PacketInfo.SourceId); } } } else { CommMain.Logger.AddLog("WARNING: MessageProcessor.OnChannelIncomingMessage: MessageArrived is null.", LoggerSeverities.Debug); } }
public TcpClientChannel(IPEndPoint remoteEP, IPacketizer packetizer) : this(remoteEP, 0, packetizer) { }
public TcpClientChannel(TcpClient client, IPEndPoint remoteEP, IPacketizer packetizer) : this(client, remoteEP, 0, packetizer) { }