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()); } } }
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()); } } } }