Beispiel #1
0
 /// <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);
		}
Beispiel #3
0
        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)
		{
		}
Beispiel #6
0
 public TcpClientChannel(TcpClient client, IPEndPoint remoteEP, IPacketizer packetizer) : this(client, remoteEP, 0, packetizer)
 {
 }