Ich möchte Welt alle 100 ms an alle Kanäle senden. Aber es ruft nur einmal an.Kernspiel Logikschleife, um Daten an Kanäle in Netty zu senden
Mein Code:
public class IncomeMessageTcpHandler extends SimpleChannelInboundHandler<byte[]> {
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
Channel channel = ctx.channel();
channel.eventLoop().scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.println("send");
channel.writeAndFlush(GameLogic.Instance.flushMessageData());
}
}, 100, 100, TimeUnit.MILLISECONDS);
}
}
jetzt erst einmal der Aufruf der Methode. Ich benutze 4.1.13.Final
public class UnityServerTcpChannelInitializer extends ChannelInitializer<SocketChannel> {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline p = ch.pipeline();
p.addLast("frameDecoder", new FixedLengthFrameDecoder(6));
p.addLast("bytesDecoder", new ByteArrayDecoder());
p.addLast("bytesEncoder", new ByteArrayEncoder());
p.addLast(new IncomeMessageTcpHandler());
}
}
Wenn ich Kommentar channel.writeAndFlush (GameLogic.Instance.flushMessageData()); Aufgabenlauf alle 100 ms