在这里输入代码我已经实现了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秒发送一次保持活动消息,但我宁愿不必这样做。
有关如何防止此异常发生的任何建议吗?
答案 0 :(得分:0)
这个异常的原因实际上是haproxy,它在闲置太久时关闭了套接字。