top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

Tomcat closes websocket without any error receiving WebSocket ContinuationFrames

+1 vote
548 views

Has anyone had a large WS message sent as the response to an outbound call? We have a scenario where the request causes a 300K WS message to be sent back as the "response". The client is sending multiple WS continuation frames and after a couple of frames are successfully sent, Tomcat just closes the websocket connection. I the response fits in a single frame, it's fine. Where can I look to try and troubleshoot this?

posted Aug 16, 2013 by Jagan Mishra

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

0 votes

My first stop would be something like Wireshark to check that what the client is sending is valid.

If the input is valid then there isn't much logging in the Tomcat 7 non-JSR356 WebSocket implementation so I'd probably move on to remote debugging to see what is going on.

answer Aug 16, 2013 by Satish Mishra
Assuming the continuation frames are ok, what code in the non-jsr IMPL should I set some breakpoints in?
I'd start with org.apache.catalina.websocket.WsFrame.nextFrame(...)

You may need to go up or down the stack from there depending on where the problem lies.
Similar Questions
+3 votes

As we start load testing our jsr-356 applications, I'd like to find out if there are any websocket-specific connector settings we should be aware of for tuning the underlying websocket connection processing. Since this is a tcp socket at the end of the day, I'm assuming all the socket.* options still apply if needed.

+2 votes

Is there a standard way to access ServletContext from a WebSocket ServerEndpoint ?

+2 votes

In our current generation web application we used session replication with tomcat clustering. (and a load balancer). That way, we received an auto fail-over when a client sends an ajax request to a tomcat node that failed.

In our next generation web application, We would like to have a similar behavior, only with web-sockets. So my questions are :

1) Is it possible ?
2) Does it involve websocket-session replication? if so, are there any guides on how to do that?

+1 vote

I'm trying to figure out how to get access to the cookies and headers passed up in the Websocket handshake request on Tomcat 8.

In Tomcat 7 the whole HttpServletRequest was passed into the WebSocketServlet. createWebSocketInbound method so it was easy to grab from the request headers. In Tomcat 8 the querystring and URI are both exposed by the javax.websocket.Session passed to ServerEndPoint.onOpen, but I don't see a mechanism for getting the cookies or headers.

We are integrating Websocket connections into an existing web app and want to use the cookies set by our web app in the Websocket connection process.

+1 vote

I'm trying to use the Tomcat8 jsr client functionality in a standalone java client. I'm trying to use the minimal number of jars, so I gabbed websocket-api.jar ONLY. When I call ContainerProvider.getWebSocketContainer(), it returns null. Do I need another jar to resolve this on the client?

...