private void ProcessHandlerList(IList <Message> messages, Connection.Connection connection) { if (connection == null) { throw new ArgumentNullException(nameof(connection)); } IList <ReceiveHandler> handlers = null; if (messages.Count == 0) { return; } var msg = messages[0]; lock (_receiveHandlers) { if (_receiveHandlers.ContainsKey(msg.Header.Type)) { handlers = _receiveHandlers[msg.Header.Type]; } } if (handlers == null) { return; } connection = _connectionManager[msg.Header.ConnectionToken]; foreach (var h in handlers) { foreach (var m in messages) { try { InvokeHandler(h, m, connection); } catch (Exception ex) { OnException.Invoke(ex); } } } connection.UpdateActivity(); }
private void ProcessHandler(Message msg, Connection.Connection connection) { connection.InvokeIfBinded(msg); IList <ReceiveHandler> handlers = null; lock (_receiveHandlers) { if (_receiveHandlers.ContainsKey(msg.Header.Type)) { handlers = _receiveHandlers[msg.Header.Type]; } } if (handlers == null) { return; } foreach (var h in handlers) { InvokeHandler(h, msg, connection); } connection.UpdateActivity(); }