public void ProcessPacket(IPacket packet) { if (!IsChannelOpen()) { return; } if (packet == null) { return; } var handler = _currentHandler; if (handler == null) { Logger.Debug($"Received packet '{packet.GetType().FullName}' has no any handlers"); return; } try { packet.Handle(handler); } catch (Exception e) { Logger.Error($"Unable to handle packet '{packet.GetType().FullName}', unexpected error", e); } }