我正在 netty 中创建自己的 Flash 游戏服务器。我在端口 843 中使用 flash 策略服务器,在 8080 中使用游戏服务器端口......另外,我使用 zerodelimeter 进行成帧;但是,当我在 flash 客户端上接收消息时,我收到了两条消息而不是一条消息。第一条信息是我应该得到的真实信息;但是,第二个是空消息。如何避免在 netty 端收到第二条消息?
谢谢,
在下面,您可以查看我的 ChannelPipelineFactory...
public class SocketServerPipelineFactory implements ChannelPipelineFactory {
public ChannelPipeline getPipeline() throws Exception {
PlayerController controller = PlayerController.createPlayerController();
ChannelPipeline pipeline = Channels.pipeline();
pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192,
zeroDelimiter()));
pipeline.addLast("decoder", new StringDecoder(CharsetUtil.UTF_8));
pipeline.addLast("encoder", new StringEncoder(CharsetUtil.UTF_8));
pipeline.addLast("handler", new SocketServerHandler(controller));
return pipeline;
}
public static ChannelBuffer[] zeroDelimiter() {
return new ChannelBuffer[] { ChannelBuffers.wrappedBuffer(new byte[] { '\0' }),
ChannelBuffers.wrappedBuffer(new byte[] { '\r', '\n' }) };
}
}