java - WebSocket Session closes after not receiving input for some time -


so have websocket session reads information server. if cut off information it's receiving completely, after minute or stop receiving new information, , won't anything, when output server turned on.

i thought websocketcontainer method

setdefaultmaxsessionidletimeout(long time) 

would fix issue, set

container.setdefaultmaxsessionidletimeout(86400000l); 

which thought mean continue running 1 day of inactivity.

however not case, stops after minute of inactivity. below code i'm using, maybe can let me know i'm doing wrong:

public void run(string... args) throws exception {     log.info("starting...");     log.info("-- api url:  {}", apiurl);     log.info("-- api token:  {}", apitoken);     websocketcontainer container = containerprovider.getwebsocketcontainer();     container.setdefaultmaxsessionidletimeout(86400000l);     clientendpointconfig config = clientendpointconfig             .builder.create()             .configurator(new customconfigurator(apitoken))             .build();     try {         session = container.connecttoserver(consumerclient.class, config, uri.create(apiurl));     } catch (deploymentexception de) {         log.error("failed connect - deploymentexception:", de);     } catch (ioexception ioe) {         log.error("ioexception:", ioe);     }     if (this.session == null) {         throw new runtimeexception("unable connect endpoint.");     }      log.info("max idle timeout: " + session.getmaxidletimeout());      log.info("connected.");     log.info("type \"exit\" cancel.");     log.info("...waiting data...");     bufferedreader br = new bufferedreader(new inputstreamreader(system.in));     string input;     try {         {             input = br.readline();             if (!input.equals("exit")) {                 this.session.getbasicremote().sendtext(input);             }         } while (!input.equals("exit"));     } catch (ioexception e) {         log.error("ioexception:", e);     } } 

i'm new websockets may misunderstanding something, hope able point me in right direction. in advance!

can try setmaxidletimeout(0) on session?

according setdefaultmaxsessionidletimeout docs:

the value may overridden on per session basis using session.setmaxidletimeout(long)


Comments

Popular posts from this blog

android - Gradle sync Error:Configuration with name 'default' not found -

java - Andrioid studio start fail: Fatal error initializing 'null' -

html - jQuery UI Sortable - Remove placeholder after item is dropped -