Multithreading 哪一个是MMORPG的最佳网络解决方案?

Multithreading 哪一个是MMORPG的最佳网络解决方案?,multithreading,session,networking,server,mmo,Multithreading,Session,Networking,Server,Mmo,我们正在与一个小团队开发一个mmorpg。我们可以在服务器端创建两种结构来管理客户端和处理包。我想知道什么结构更好。如果您能推荐一个好的结构,我将非常高兴 第一结构 在此结构中,初始创建空闲会话(IdleSessionQueue),并且有一个线程(NetworkListenerThread)侦听网络并接受用户。当新用户到达时,此线程从空闲会话中获取会话,并使用值将会话添加到活动会话表(ActiveSessionMap)​​SessionId和Session的名称。然后创建一个线程(Clien

我们正在与一个小团队开发一个mmorpg。我们可以在服务器端创建两种结构来管理客户端和处理包。我想知道什么结构更好。如果您能推荐一个好的结构,我将非常高兴

第一结构

在此结构中,初始创建空闲会话(IdleSessionQueue),并且有一个线程(NetworkListenerThread)侦听网络并接受用户。当新用户到达时,此线程从空闲会话中获取会话,并使用值将会话添加到活动会话表(ActiveSessionMap)​​SessionId和Session的名称。然后创建一个线程(ClientListenerThread)来侦听添加到表中的会话。每个用户都会出现ClientListenerThread。当客户端断开连接时,它将再次添加回IDResessions

当客户端发送请求(数据包)时,该请求将添加到TaskQueue。预先创建一定数量的workersThreads。只要TaskQueue中有包,WorkerThreads就会接收并处理该包,并将新包添加到SendQueue。SenderThreads接收SendQueue中的每个数据包并将其发送到客户端

第二结构

在此结构中,初始创建空闲会话(IdleSessionQueue),并且有一个线程(NetworkListenerThread)侦听网络并接受用户。当新用户到达时,该线程从空闲会话中获取会话,并使用SessionId和session的值将该会话添加到活动会话表(ActiveSessionMap)中。然后创建一个线程(ClientListenerThread)来侦听添加到表中的会话。每个用户都会出现ClientListenerThread。当客户端断开连接时,它将再次添加到IDResessions。当客户端发送请求(数据包)时,该请求由ClientListenerThread处理,结果发送给一个或多个客户端

对于这个问题,哪一个是更好的解决方案,或者什么是最好的解决方案