最近用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);
}
}
websocket api開(kāi)發(fā)客戶端如何保持鏈接不斷開(kāi),在沒(méi)有數(shù)據(jù)傳輸?shù)臅r(shí)候
哆啦的時(shí)光機(jī)
2019-02-18 22:39:32