簡體   English   中英

Jersey ChunkedOutput-如何檢測客戶端斷開連接?

[英]Jersey ChunkedOutput - how to detect client disconnections?

在服務器端使用curl作為客戶端,球衣和灰熊,我無法讓服務器檢測到客戶端斷開連接。 即使在服務器向客戶端寫入消息的情況下,ChunkedOutput.write也會成功。

在灰熊或球衣中是否存在可以使分塊輸出寫入失敗的配置?

似乎使用Grizzly時-工作者線程IOStrategy的ChunkedOutput對象(Jersey對象)無法識別客戶端立即斷開連接。

我最終使用了Same-thread IOStrategy。 這可能不是所有應用程序的最佳解決方案,但對我而言,這很好。

NetworkListener listener = new NetworkListener("grizzly2", host, port);
listener.getTransport().setIOStrategy(SameThreadIOStrategy.getInstance());

我還嘗試使用輔助線程IOStrategy並降低寫緩沖區:

NetworkListener listener = new NetworkListener("grizzly2", host, port);
listener.getTransport().setWriteBufferSize(bufferSize);

當bufferSize小於實際發送的消息時,這也起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM