第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java bayeux 客戶端在空閑時(shí)與 TimeoutException 斷開連接

Java bayeux 客戶端在空閑時(shí)與 TimeoutException 斷開連接

達(dá)令說(shuō) 2022-06-30 11:51:04
我正在初始化 Bayeux 客戶端:SslContextFactory sslContextFactory = new SslContextFactory(true);HttpClient httpClient = new HttpClient(sslContextFactory);httpClient.start();Map<String, Object> options = new HashMap<String, Object>();ClientTransport transport = new LongPollingTransport(options, httpClient);BayeuxClient client =  new BayeuxClient("https://localhost:8483/cometd/", transport);client.handshake();boolean handshaken = client.waitFor(20000, BayeuxClient.State.CONNECTED);if (!handshaken) {    LOGGER.info("Failed to handshake");    throw new RuntimeException("Failed to handshake");}我用它與服務(wù)器進(jìn)行一些通信,它可以工作,它訂閱頻道、發(fā)送、接收,然后我讓它閑置一段時(shí)間。我得到以下異常:java.util.concurrent.TimeoutException: Idle timeout 20000 msat org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onIdleExpired(HttpConnectionOverHTTP.java:145)at org.eclipse.jetty.io.ssl.SslConnection.onIdleExpired(SslConnection.java:286)at org.eclipse.jetty.io.AbstractEndPoint.onIdleExpired(AbstractEndPoint.java:401)at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:166)at org.eclipse.jetty.io.IdleTimeout$1.run(IdleTimeout.java:50)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)
查看完整描述

2 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

事實(shí)證明,我阻塞了 cometD 線程:

我構(gòu)建了一個(gè)命令行工具來(lái)檢查服務(wù)器,當(dāng)我收到一條消息(帶有來(lái)自 cometD 的線程)時(shí),我持有該線程以供用戶輸入。如果我持有該線程足夠長(zhǎng)的時(shí)間,cometD 將與上述異常斷開連接。

解決方案:當(dāng)你收到 CometD 的消息時(shí),不要持有它,使用新線程。


查看完整回答
反對(duì) 回復(fù) 2022-06-30
?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

默認(rèn)心跳由服務(wù)器端timeout參數(shù)控制,默認(rèn)為30秒。這意味著當(dāng)系統(tǒng)空閑時(shí),長(zhǎng)輪詢每 30 秒發(fā)生一次。

您已idleTimeout在 20 秒時(shí)配置了客戶端,這從您的異常堆棧跟蹤中可以明顯看出。

當(dāng)系統(tǒng)空閑時(shí),客戶端將在心跳(長(zhǎng)輪詢)響應(yīng)之前超時(shí)連接,導(dǎo)致您看到的錯(cuò)誤。

將客戶端配置為idleTimeout大于心跳的值就足夠了timeout,或者 - 等效地 - 將心跳設(shè)置timeout為小于客戶端的值idleTimeout。


查看完整回答
反對(duì) 回復(fù) 2022-06-30
  • 2 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)