示例#1
0
        public void SendMessage(MultiPlayerMessage message)
        {
            message.Sender = message.Sender ?? ServerId;
            lock (connectionsLock)
            {
                var client = GetClient(message.Recipient);

                try
                {
                    if (client == null)
                    {
                        throw new Exception($"The client {message.Recipient} is not connected at the moment");
                    }
                    else
                    {
                        serverNetworkProvider.SendMessageToClient(message.Serialize(), client);
                    }
                }
                catch (Exception ex)
                {
                    Error.Fire(ex.ToString());
                    Undeliverable.Fire(new UndeliverableEvent()
                    {
                        Message   = message,
                        Exception = ex
                    });
                    throw;
                }
            }
        }
示例#2
0
 public bool TrySendMessage(MultiPlayerMessage message)
 {
     try
     {
         message.Sender = ClientId;
         clientNetworkProvider.SendMessage(message.Serialize());
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
示例#3
0
 public void SendMessage(MultiPlayerMessage message)
 {
     message.Sender = ClientId;
     clientNetworkProvider.SendMessage(message.Serialize());
 }