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

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

websocket api開(kāi)發(fā)客戶端如何保持鏈接不斷開(kāi),在沒(méi)有數(shù)據(jù)傳輸?shù)臅r(shí)候

websocket api開(kāi)發(fā)客戶端如何保持鏈接不斷開(kāi),在沒(méi)有數(shù)據(jù)傳輸?shù)臅r(shí)候

哆啦的時(shí)光機(jī) 2019-02-18 22:39:32
最近用java websocket開(kāi)發(fā)的客戶端程序,在和服務(wù)端鏈接通后,在數(shù)據(jù)傳輸完畢后,客戶端自動(dòng)關(guān)閉了鏈接,如何能保持鏈接不斷開(kāi) 這個(gè)是客戶端的啟動(dòng)類(lèi),在循環(huán)完畢后,會(huì)自動(dòng)斷開(kāi)和服務(wù)器的鏈接,開(kāi)始懷疑是session超時(shí)問(wèn)題,然后設(shè)置了下maxsession,卻依然在沒(méi)有數(shù)據(jù)傳輸后立刻斷開(kāi)了鏈接 public class ClientStart { public static void main(String[] args){ try { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); MyClient client = new MyClient(); container.connectToServer(client, new URI("ws://localhost:8088/websocket")); // container.setDefaultMaxSessionIdleTimeout(5000L); int turn = 0; while(turn++ < 10){ client.send("client send: " + turn); Thread.sleep(1000); } }catch (Exception e){ e.printStackTrace(); } } } MyClient也放上去吧: @ClientEndpoint public class MyClient { private static Logger logger = LoggerFactory.getLogger(MyClient.class); private Session session; @OnOpen public void open(Session session){ logger.info("Client WebSocket is opening..."); this.session = session; } @OnMessage public void onMessage(String message){ logger.info("Server send message: " + message); } @OnClose public void onClose(){ logger.info("Websocket closed"); } /** * 發(fā)送客戶端消息到服務(wù)端 * @param message 消息內(nèi)容 */ public void send(String message){ this.session.getAsyncRemote().sendText(message); } }
查看完整描述

3 回答

?
動(dòng)漫人物

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

new CountDownLatch(1).await();

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
明月笑刀無(wú)情

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

按照你的邏輯循環(huán)發(fā)送消息結(jié)束后,進(jìn)程就退出了吧,連接斷開(kāi)是正常情況。

public class ClientStart {
    public static void main(String[] args){
        try {
            WebSocketContainer container = ContainerProvider.getWebSocketContainer();
            MyClient client = new MyClient();
            container.connectToServer(client, new URI("ws://localhost:8088/websocket"));
//            container.setDefaultMaxSessionIdleTimeout(5000L);
            int turn = 0;
            while(turn++ < 10){
                client.send("client send: " + turn);
                Thread.sleep(1000);
            }
            
            //
            // wait/sleep
            //
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
蕪湖不蕪

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

要保證你的主線程一直不退出,例如spring mvc 的web框架,或者是一個(gè)阻塞的隊(duì)列,沒(méi)有消息就一直阻塞,保證主線程不會(huì)退出。Thread.sleep(1000);你可以嘗試把這個(gè)調(diào)成1h,模擬一個(gè)永不退出的程序

查看完整回答
反對(duì) 回復(fù) 2019-03-01
  • 3 回答
  • 0 關(guān)注
  • 1224 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(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)