예제 #1
0
        private void Send(ClientInfo client, ContainerMessage message)
        {
            try
            {
                string mc = message.Content;
                if (mc.Length > 20)
                {
                    mc = mc.Substring(0, 20) + "...";
                }
                RaiseNewTextEvent(string.Format("Sending message [{0} -> {1}: {2} # {3}]", message.Sender, message.Receiver, message.Info, mc));

                string s = ContainerMessage.Serialize(message);

                byte[]       buffer = ASCIIEncoding.Unicode.GetBytes(s);
                BasicMessage m      = new BasicMessage(_serverGuid, buffer);
                client.TcpSocketClientHandler.SendAsync(m);
            }
            catch (SocketException se)
            {
                // "An existing connection was forcibly closed by the remote host"
                RaiseNewTextEvent("Container " + _containerNames[client] + " is disconnected.");
                _containerNames.Remove(client);
                client.TcpSocketClientHandler.Close();
                RaiseNewTextEvent("Exception in Server.Send: " + se.Message + ".");
            }
            catch (Exception ex)
            {
                RaiseNewTextEvent("Exception in Server.Send: " + ex.Message + ".");
            }
        }
예제 #2
0
        internal void MoveAgent(AgentState state, string destination)
        {
            string serializedAgentState = ContainerMessage.Serialize(state);
            var    cm = new ContainerMessage(_name, destination, "Request Move Agent", serializedAgentState);

            Send(cm);
        }
예제 #3
0
        private void Send(ClientInfo client, ContainerMessage message)
        {
            try
            {
                RaiseNewTextEvent($"Sending message [{message.Format()}]");

                string s = ContainerMessage.Serialize(message);

                byte[] buffer = ASCIIEncoding.Unicode.GetBytes(s);
                var    m      = new BasicMessage(_serverGuid, buffer);
                client.TcpSocketClientHandler.SendAsync(m);
            }
            catch (SocketException se)
            {
                // "An existing connection was forcibly closed by the remote host"
                RaiseNewTextEvent($"Container {_containerNames[client]} is disconnected.");
                _containerNames.Remove(client);
                client.TcpSocketClientHandler.Close();
                RaiseNewTextEvent($"Exception in Server.Send: {se.Message}.");
            }
            catch (Exception ex)
            {
                RaiseNewTextEvent($"Exception in Server.Send: {ex.Message}.");
            }
        }
예제 #4
0
        internal void SendLDAgentMessage(string receiverContainer, Message message)
        {
            message.Sender = $"{message.Sender}@{this.Name}";
            string serializedMessage = ContainerMessage.Serialize(message);
            var    cm = new ContainerMessage(_name, receiverContainer, "Send LD Message", serializedMessage);

            Send(cm);
        }
예제 #5
0
        private void Send(ContainerMessage message)
        {
            try
            {
                RaiseNewTextEvent($"Sending message [{message.Format()}]");

                string s                 = ContainerMessage.Serialize(message);
                byte[] buffer            = ASCIIEncoding.Unicode.GetBytes(s);
                var    serializedMessage = new BasicMessage(_clientGuid, buffer);
                _client.SendAsync(serializedMessage);
            }
            catch (Exception ex)
            {
                RaiseNewTextEvent(ex.Message);
            }
        }
예제 #6
0
        private void Send(ContainerMessage message)
        {
            try
            {
                string mc = message.Content;
                if (mc.Length > 20)
                {
                    mc = mc.Substring(0, 20) + "...";
                }
                RaiseNewTextEvent(string.Format("Sending message [{0} -> {1}: {2} # {3}]", message.Sender, message.Receiver, message.Info, mc));

                string       s                 = ContainerMessage.Serialize(message);
                byte[]       buffer            = ASCIIEncoding.Unicode.GetBytes(s);
                BasicMessage serializedMessage = new BasicMessage(_clientGuid, buffer);
                _client.SendAsync(serializedMessage);
            }
            catch (Exception ex)
            {
                RaiseNewTextEvent(ex.Message);
            }
        }