侦听器之间的非阻塞写入

时间:2016-03-30 13:11:09

标签: java nio apache-httpasyncclient

我正在使用apache异步客户端读取http响应。每次我读取一大块数据时,我都希望以非阻塞模式将其写入servletoutputstream。像这样:

// decoder.read is executed when data available for reading
while (decoder.read(this.bbuf) > 0)
{
 this.bbuf.flip();

 arr = new byte[numbytesread];
 this.bbuf.rewind();
 this.bbuf.get(arr);

 // Blocking write to servletoutputstream 'sos'
 this.sos.write(arr);

 this.bbuf.compact();
}

显然,即使我将'sos'包装在WritableChannel中,这也不起作用,因为我总是最终得到来自servletoutputstream的bytearrayoutputstream。

所以我应该将一个WriteListener添加到servletoutputstream以切换到nio模式,但是这里出现了我无法解决的问题。如何将我的http回调中的每一块数据传递给writelistener以进行异步和非阻塞?

这可能吗?如果是这样,有人能给我一个关于如何做的线索吗?

0 个答案:

没有答案