0
我正在用Java编写一个游戏服务器,我正在使用Netty 3.6.2。游戏服务器不应该接受任何HTTP请求,因为它们只是处理游戏客户端数据(纯粹是TCP上的字节)。当我在Chrome中加载http://server-ip:game-servers-port时,我使用游戏的握手数据包下载了一个文件(这不应该发生)。在Netty中禁用HTTP协议请求?
我绑定到游戏服务器的端口,像这样:
ChannelFactory factory = new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool());
clientAcceptor = new ServerBootstrap(factory);
clientAcceptor.setOption("child.tcpNoDelay", true);
clientAcceptor.setOption("child.keepAlive", false);
clientAcceptor.setPipelineFactory(() -> Channels.pipeline(new PacketDecoder(), new ClientHandler()));
clientAcceptor.bind(new InetSocketAddress(Configurations.CHANNEL_GAME_PORT));
而且我如果传入的请求是使用过程中一个SimpleChannelHandler请求,像这样
@Override
public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) {
// Encryption key code.
Packets.sendHello(ctx.getChannel(), ivRecv, ivSend);
ctx.getChannel().setAttachment(client);
}
我该如何去解读HTTP协议?
编辑:我也应该说,它还应该在通道连接上阻止任何FTP,WebSocket等协议(基本上不是游戏的协议)。
HTTP协议详细介绍在它的RFC https://tools.ietf.org/html/rfc2616 –