# websocket - keine Daten mehr nach ca 80 Sekunden



## Nisbo (27. Feb 2017)

Servus,

ich habe ein kleines Problem mit meiner Websockets Connection, es werden permanent Daten geschickt aber nach ca 80 Sekunden kommt nichts mehr an. onClose wird nicht aufgerufen udn ich kann die Connection manual auch starten.

Ich nutze tyrus-standalone-client 1.13.1
https://repo1.maven.org/maven2/org/glassfish/tyrus/bundles/tyrus-standalone-client/1.13.1/

ich habe auch schon mit setDefaultMaxSessionIdleTimeout und setAsyncSendTimeout experimentiert was nicht zum gewünschten Erfolg führte.

Zuerst dachte ich es liegt an meiner UMTS Verbindung, aber auch zu Hause über DSL ohne Proxy habe ich das Problem


```
package de.xxx.xx;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import javax.websocket.ClientEndpoint;
import javax.websocket.ContainerProvider;
import javax.websocket.DeploymentException;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;

import org.json.JSONException;

@ClientEndpoint
public class TestWebsocketClient {
   private final String uri="ws://bm-lastheard.pi9noz.ampr.org/lh//?EIO=3&transport=websocket&sid=";
   private Session session;
   private RepeaterReader clientWindow;

   public TestWebsocketClient(RepeaterReader cw){
           clientWindow=cw;
    
         WebSocketContainer container=ContainerProvider.getWebSocketContainer();
         try {
            container.connectToServer(this, new URI(uri));
            System.out.println("Test: Connect to Server " + session.getId());
        } catch (DeploymentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (URISyntaxException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
   }

   @OnOpen
   public void onOpen(Session session){
      this.session=session;
      System.out.println("Test: onOpen");
   }

   @OnMessage
   public void onMessage(String message, Session session){
      try {
        clientWindow.writeServerMessage(message);
       
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
   }

   public void onClose(){
       System.out.println("Closed");
   }
  
   public void sendMessage(String message){
      try {
         session.getBasicRemote().sendText(message);
      } catch (IOException ex) {
          System.out.println("Error sending Message");
      }
   }
}
```

Hat jemand eine Idee wo das Problem liegt ?
Ich tippe drauf das der Client kein "keep alive" schickt


----------

