[wildfly-dev] WF 8.0 HTTP Upgrade help needed
PB
pbielicki at gmail.com
Fri Mar 28 11:26:16 EDT 2014
Hi,
I'm testing the HTTP Upgrade feature of WF 8.0 and I'm facing some banal
problem. Basically my ReadListener is NEVER called.
Here's the code:
@WebServlet(urlPatterns = "/upgrade")
public class UpgradeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
if ("upgrade".equalsIgnoreCase(req.getHeader("Connection"))) {
req.upgrade(EchoHandler.class);
}
}
}
public class EchoHandler implements HttpUpgradeHandler {
@Override
public void init(WebConnection wc) {
try {
ServletInputStream in = wc.getInputStream();
ServletOutputStream out = wc.getOutputStream();
BlockingQueue<String> queue = new LinkedBlockingQueue<String>();
in.setReadListener(new EchoReadListener(queue, in));
out.setWriteListener(new EchoWriteListener(queue, out));
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
public class EchoReadListener implements ReadListener {
@Override
public void onDataAvailable() throws IOException {
while (in.isReady()) {
int length = in.read(buffer);
String input = new String(buffer, 0, length);
if (false == queue.offer(input)) {
System.err.println("'" + input + "' input was ignored");
}
}
}
I'm connecting to WF using telnet and sending the upgrade request:
GET /example-webapp/upgrade HTTP/1.1
Host: localhost
Connection: upgrade
Upgrade: echo
and I'm getting correct response:
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
X-Powered-By: Undertow 1
Server: Wildfly 8
Content-Length: 0
which means that from now on the protocol between my telnet client and WF
is pure TCP.
So, I start typing some text, hit Enter and.... nothing happens.
onDataAvailable() is NEVER called. More so, this makes WF totally
irresponsive - my whole webapp is dead.
I believe, I'm doing something wrong - any ideas what exactly? There is
also a slight chance that Upgrade feature in WF is f****d :)
Anyway, WF should not block even in case my upgraded protocol is not
working correctly?
Many thanks,
Przemyslaw
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/wildfly-dev/attachments/20140328/154384a7/attachment.html
More information about the wildfly-dev
mailing list