MalformedChunkCodingException:Chunked stream意外终止

时间:2014-01-24 22:30:45

标签: java android apache-httpclient-4.x server-sent-events

在这里输入代码我已经实现了SSE服务器和客户端。服务器使用Netty实现,客户端使用Apache http client

如果我至少每隔30秒发送一条消息,它似乎一切正常,但如果我不这样做,我会间歇地得到这个例外:

```
 Caused by: org.apache.http.MalformedChunkCodingException: Chunked stream ended unexpectedly
    W/System.err( 2879):    at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:222)
    W/System.err( 2879):    at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:183)
    W/System.err( 2879):    at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:155)
    W/System.err( 2879):    at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:159)
    W/System.err( 2879):    at java.io.InputStreamReader.read(InputStreamReader.java:244)
    W/System.err( 2879):    at java.io.BufferedReader.fillBuf(BufferedReader.java:130)
    W/System.err( 2879):    at java.io.BufferedReader.readLine(BufferedReader.java:354)
    W/System.err( 2879):    at com.clover.engine.push.SSEConnection$1.call(SSEConnection.java:85)
    W/System.err( 2879):    at com.clover.engine.push.SSEConnection$1.call(SSEConnection.java:79)
    W/System.err( 2879):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
```

现在我每30秒发送一次保持活动消息,但我宁愿不必这样做。

有关如何防止此异常发生的任何建议吗?

1 个答案:

答案 0 :(得分:0)

这个异常的原因实际上是haproxy,它在闲置太久时关闭了套接字。