You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by tonywestonuk <to...@totspics.com> on 2016/04/28 13:53:01 UTC

Websocket Client Bug....

There appears to be a bug in Websocket Client....  I am getting
"java.io.IOException: An existing connection was forcibly closed by the
remote host". This appears to be when the websocket client is closed before
all the information has been sent.Surely session.close should wait until
everything has been sent?.....  I'm not actually sure how to fix this in
code... maybe having the client send an 'end-of-data', then the server send
an acknowlegement of the end-of-data, and only then close the
socket?But....is this a workaround for a bug?At the moment, I am using
https://github.com/TooTallNate/Java-WebSocket instead, which doesn't have
this issue.  To reproduce: Create the following 2 classes,  then navigate to
http://localhost:8080/  :WebsocketClient.javaimport
java.io.IOException;import java.net.URI;import
javax.servlet.ServletException;import
javax.servlet.annotation.WebServlet;import javax.servlet.http.*;import
javax.websocket.*;import
javax.websocket.RemoteEndpoint.Basic;@WebServlet("/")public class
WebsocketClient extends HttpServlet {		@Override	protected void
doGet(HttpServletRequest req, HttpServletResponse resp)			throws
ServletException, IOException {				 try {			 			Session session =
ContainerProvider.getWebSocketContainer()			            .connectToServer(new
MyEndpoint(),new URI("ws://localhost:8080/WebsocketClientBug/ws/testing"));								
Basic br = session.getBasicRemote();			for (int i=0; i<100; i++){			
br.sendText("this is some random text");			}			session.close();					} catch
(Exception e) {e.printStackTrace();}	}			@ClientEndpoint	public static class
MyEndpoint{		@OnError		public void error(Throwable err){		
err.printStackTrace();		}	}	}WebsocketServer.javaimport
javax.websocket.OnMessage;import javax.websocket.Session;import
javax.websocket.server.ServerEndpoint;@ServerEndpoint("/ws/testing")public
class WebsocketServer {	@OnMessage	public void message(Session sess, String
payload){		try {			Thread.sleep(10);		} catch (InterruptedException e) {		
// TODO Auto-generated catch block			e.printStackTrace();		}	}	}



--
View this message in context: http://tomee-openejb.979440.n4.nabble.com/Websocket-Client-Bug-tp4678281.html
Sent from the TomEE Dev mailing list archive at Nabble.com.

Re: Websocket Client Bug....

Posted by tonywestonuk <to...@totspics.com>.
Ignore this!!!...Baddly formatted aghh!



--
View this message in context: http://tomee-openejb.979440.n4.nabble.com/Websocket-Client-Bug-tp4678281p4678283.html
Sent from the TomEE Dev mailing list archive at Nabble.com.