小编J. *_* B.的帖子

netty ChannelInboundHandlerAdapter将帧切成约1500个字节

我已经实现了一个服务器应用程序,该应用程序使用netty框架使用ChannelInblundHandlerAdapter读取传入的字节。

如标题所示,我的问题是,我不定期地从客户端获取内容,我认为是在〜1.500字节后被削减。例如:在这种情况下,我应该收到一个大的JSON数组。因为它被剪切,所以我无法解析它。

我尝试在使用消息之前使用管道中的附加ByteToMessageDecoder通道对消息进行解码。但这不能解决问题。我在JSON中没有定界符,因此我可以检查并再次将两个(或多个)部分粘在一起。

这是我的管道配置:

        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup, workerGroup)
                .channel(NioServerSocketChannel.class)
                .childHandler(new ChannelInitializer<SocketChannel>() {
                    @Override
                    public void initChannel(SocketChannel ch) {
                        ch.pipeline().addLast(new IdleStateHandler(45,0,0));
                        ch.pipeline().addLast(new MyByteToMessageDecoder());
                        ch.pipeline().addLast(new GatewayCommunicationHandler());
                    }
                })
                .option(ChannelOption.SO_BACKLOG, 128)
                .option(ChannelOption.SO_RCVBUF, 8192)
                .childOption(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(8192))
                .childOption(ChannelOption.SO_KEEPALIVE, true);

        initRestServer();

        // Bind and start to accept incoming connections.
        ChannelFuture f = b.bind(Config.gatewayPort).sync();
        f.channel().closeFuture().sync();
Run Code Online (Sandbox Code Playgroud)

多数民众赞成在我的ByteToMessageDecoder:(我知道这是一团糟,但我不知道如何处理我的情况)

public class MyByteToMessageDecoder extends ByteToMessageDecoder {

@Override
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
    byte[] receivedBytes = new byte[in.readableBytes()];
    in.getBytes(in.readerIndex(), receivedBytes);


    if (receivedBytes[in.readableBytes()-1] != (byte) …
Run Code Online (Sandbox Code Playgroud)

java web-services netty

2
推荐指数
1
解决办法
392
查看次数

应用程序/控制台 sulu:security:user:create 正在工作,但 sulu-login 不起作用

我是使用 Symfony 和 Sulu CMS 管理网站的新手。

但现在我必须根据现有项目设置一个测试环境。到目前为止,我想我已经成功地让 Symfony 和 Sulu 基本正常工作了。

现在我的问题是:我创建了一个用户,并且php app/console sulu:security:user:create工作正常。到目前为止,我还无法创建角色,但 MySQL 数据库中已有角色,因此我为新用户使用了其中一个角色。当我尝试登录 sulu.lo/admin 页面时,新的用户和密码组合不起作用。

我可以执行任何检查来提示可能出现的问题吗?

请向我询问所需的额外信息。

此致

php mysql symfony sulu

1
推荐指数
1
解决办法
2839
查看次数

标签 统计

java ×1

mysql ×1

netty ×1

php ×1

sulu ×1

symfony ×1

web-services ×1