首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netty4和HTTP块

Netty4和HTTP块
EN

Stack Overflow用户
提问于 2013-01-30 20:51:31
回答 1查看 1.2K关注 0票数 0

我很难理解如何在Netty 4中使用块。

我想要做的是以某种方式替换一个servlet,保持连接打开并每秒发送两次数据。

因此,我查看了servlet返回的头,现在有了一个扩展ChannelInboundMessageHandlerAdapter<FullHttpRequest>的Netty处理程序。

实际上,在我的messageReceived(...)方法中,我正在做这样的事情:

代码语言:javascript
复制
HttpResponse response = new DefaultHttpResponse(HttpVersion.HTTP_1_1,
                                                HttpResponseStatus.OK);
// initialize response
HttpHeaders headers = response.headers();
headers.set(HttpHeaders.Names.CONTENT_TYPE, "text/event-stream");
headers.set(HttpHeaders.Names.CACHE_CONTROL,
            "no-cache, no-store, max-age=0, must-revalidate");
headers.set(HttpHeaders.Names.PRAGMA, HttpHeaders.Values.NO_CACHE);
headers.set(HttpHeaders.Names.TRANSFER_ENCODING, HttpHeaders.Values.CHUNKED);
ctx.write(response);

就在上面的处理程序代码之前,我在管道中添加了一个ChunkedWriteHandler

现在,如果我做对了,我现在应该在我的通道中编写ChunkedInputs,以便发送数据片段。

我创建了一个类似于此的ChunkedInput子类:

代码语言:javascript
复制
private class MyChunk implements ChunkedByteInput {
    private final ChannelHandlerContext ctx;
    private final String json;
    private boolean done = false;

    private HystrixChunk2(ChannelHandlerContext ctx, String json) {
        this.ctx = ctx;
        this.json = json;
    }

    @Override
    public boolean readChunk(ByteBuf buffer) throws Exception {
        buffer.writeBytes("data: ".getBytes())
                .writeBytes(json.getBytes())
                .writeBytes("\n".getBytes());
        done = true;
        LOGGER.info("Wrote chunck");
        return true;
    }

    @Override
    public boolean isEndOfInput() throws Exception {
        return done;
    }

    @Override
    public void close() throws Exception {
        ctx.channel().close();
    }
}

基本上,在我的messageReceived(..)方法中,我只需编写该类的一些实例。

但是我可能发现了一个bug,或者更可能不知道如何在Netty中使用块,因为我的套接字输出中没有写任何东西.

EN

回答 1

Stack Overflow用户

发布于 2013-01-31 12:44:42

实际上,我有这个问题是因为我发送了一个HTTP响应,而不是101-继续。

现在看来很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14613529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档