Netty游戏服务器与游戏线程进行通信

时间:2016-02-16 04:13:48

标签: java multithreading network-programming netty

我使用Netty开发了一款游戏服务器,到目前为止,它的工作正常。但内部结构不够好,目前服务器只接收命令,处理并将结果发送回所有客户端。

我需要这个服务器以30或60 fps的速度运行每个游戏室的分离线程,因此它会计算这个房间所有帧的物理和移动。目前,客户计算所有的动作,显然我有很多问题。我不能依赖客户......

问题是: 1)如何在某个特定时刻在Netty线程的单独线程上运行我的游戏?

2)如何与Netty通信这个线程来处理传入的命令?

提前致谢!

1 个答案:

答案 0 :(得分:1)

创建一个新线程并不与netty真正相关。

刚开始吧:

new Thread( yourRunnable ).start();

或使用ExecutorService

ExecutorService executor = Executors.newSingleThreadExecutor( );
executor.submit( yourRunnable );

您的Runnable可能就像是一个连续修改模型的类。要与netty通信...只需添加一个控制器类,其中包含允许您操作模型的方法(getter,setter,您需要的任何方法),并在从客户端收到命令时从netty处理程序调用它。

注意并发修改;你可能需要一些同步点。