protected virtual void SubscribeMessage(NetworkStream stream) { try { while (true) { if (!stream.DataAvailable) { continue; } var message = stream.GetMessageObj(); OnMessage(message as INetworkObject); } } catch (Exception ex) { Disconnect(); //todo log throw; } }