Java 在Netty中禁用HTTP协议请求?

Java 在Netty中禁用HTTP协议请求?,java,http,netty,Java,Http,Netty,我正在用Java编写一个游戏服务器,我正在使用Netty 3.6.2。游戏服务器不应接受HTTP请求,因为它们只处理游戏客户端数据(这纯粹是TCP上的字节)。当我加载Chrome时,我下载了一个带有游戏握手包的文件(这是不应该发生的) 我绑定到游戏服务器的端口,如下所示: ChannelFactory factory = new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedTh

我正在用Java编写一个游戏服务器,我正在使用Netty 3.6.2。游戏服务器不应接受HTTP请求,因为它们只处理游戏客户端数据(这纯粹是TCP上的字节)。当我加载Chrome时,我下载了一个带有游戏握手包的文件(这是不应该发生的)

我绑定到游戏服务器的端口,如下所示:

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协议,我如何进行解密


编辑:我还应该说,它还应该阻止channel connect上的任何FTP、WebSocket等协议(本质上是非游戏协议的任何协议)。

如果您对已接受的连接所做的第一件事是发送某些内容,那么您不能期望能够禁用HTTP请求


让客户机在握手时进行第一次发送。让服务器通过接收启动,如果不是正确的初始握手数据包,则关闭连接。

HTTP协议在其RFC中有详细描述