public void HandleNewMessageData(TCPReceivePackage package)
        {
            if(_nByteReceiveCount == 0)
            {
                //Attempt to build message from package
                Message message;
                MessageBuilder.BuildReceiveMessage(package, out message);
                NotifyMessageReceived(message);
            }
            else
            {
                imageBuffer = AppendBytes(imageBuffer, package.Data);

                if(imageBuffer.Length == _nByteReceiveCount)
                {
                    //Done receiving image
                    //Build image message
                    ImageMessage message;
                    MessageBuilder.BuildImageMessage(imageBuffer, out message);
                    NotifyMessageReceived(message);

                    //Set the receiving count to to switch the message processor mode back to regular message processing
                    _nByteReceiveCount = 0;
                }
                else
                {
                    //Contiue processing the receipt of an image
                }
            }
        }
Ejemplo n.º 2
0
        protected override void OnMessageReceived(byte[] messageData)
        {
            //Build the received message package
            TCPReceivePackage package = new TCPReceivePackage();
            package.Data = messageData;

            //Notfiy delegate
            NotifyMessageReceived(package);
        }
Ejemplo n.º 3
0
        protected override void OnMessageReceived(byte[] messageData)
        {
            //Build the received message package
            TCPReceivePackage package = new TCPReceivePackage();
            package.Data = messageData;
            package.SendingParticipantID = _clientID;

            //Notfiy delegate
            NotifyMessageReceived(package);
        }
Ejemplo n.º 4
0
        public static bool BuildReceiveMessage(TCPReceivePackage package, out Message message)
        {
            message = null;
            bool bReturn = true;

            //Get message type
            var strData = Encoding.ASCII.GetString(package.Data);
            using (XmlReader reader = XmlReader.Create(new StringReader(strData)))
            {
                if (!reader.ReadToFollowing("message"))
                {
                    Log.debug("Unknown message received.");
                    return false;
                }
                else
                {
                    while (reader.MoveToNextAttribute())
                    {
                        switch (reader.Name)
                        {
                            case "type":
                                {
                                    if (reader.Value == "register_media_consumer_response")
                                    {
                                        Log.info(String.Format("Received message: {0}", reader.Value));
                                        message = BuildRegisterMessageResponse();

                                    }
                                    else if(reader.Value == "image_receive_request")
                                    {
                                        Log.info(String.Format("Received message: {0}", reader.Value));
                                        message = BuildRegisterMessageResponse();
                                    }
                                    else
                                    {
                                        Log.info(String.Format("Message type {0} not handled", reader.Value));
                                        return false;
                                    }
                                }
                                break;
                            default:
                                Log.info("Message type is unknown. Will not be processed.");
                                return false;
                                break;
                        }
                    }
                }

            }

            return bReturn;
        }
Ejemplo n.º 5
0
 private void NotifyMessageRecieved(TCPReceivePackage message)
 {
     foreach (IDataReceivedEventHandler handler in _dataReceivedEventHandlers)
     {
         handler.OnDataRecevied(message);
     }
 }
Ejemplo n.º 6
0
 protected void NotifyMessageReceived(TCPReceivePackage package)
 {
     MessageReceiveDelegate.OnNewTCPReceivePackage(package);
 }
Ejemplo n.º 7
0
 void IClientMessageEventDelegate.OnNewTCPReceivePackage(TCPReceivePackage package)
 {
     _messageReceiveProcessor.HandleNewMessageData(package);
 }