コード例 #1
0
 private void InvokeHandlers(IList <ObjectMessageHandler> handlers, ref Sender sender, IObjectMessage message)
 {
     //Debug.Log("invoking handlers for message " + message.GetType() + " handler count " + handlers.Count + " sender role " + sender.Role);
     for (int i = 0; i < handlers.Count; i++)
     {
         var handler = handlers[i];
         if ((handler.MetaData.AllowedSenders & sender.Role) != 0)
         {
             handler.Invoke(message, new ObjectMessageMetadata(sender.Role, sender.Latency));
         }
         else
         {
             Debug.Log(sender + " is not allowed to send message of type " + message.GetType());
         }
     }
 }
コード例 #2
0
        public void Dispatch(MessageType messageType, IObjectMessage message, ConnectionId connectionId, ObjectRole sender)
        {
            IList <ObjectMessageHandler> handlers;

            if (_registeredHandlers.TryGetValue(messageType, out handlers))
            {
                for (int i = 0; i < handlers.Count; i++)
                {
                    var handler = handlers[i];
                    if ((handler.MetaData.AllowedSenders & sender) != 0)
                    {
                        handler.Invoke(message, new MessageMetadata(connectionId, _latencyInfo.GetLatency(connectionId)));
                    }
                    else
                    {
                        Debug.Log(sender + " is not allowed to send message of type " + message.GetType());
                    }
                }
            }
        }