From f739545c71f3ee912d6e79d3a5a2e65fbde74baa Mon Sep 17 00:00:00 2001 From: Kylin Date: Thu, 20 Feb 2014 21:48:34 +0800 Subject: [PATCH] add websockets demo --- undertow/quickstart/src/main/java/Doc | 4 ++ .../quickstart/servlet/MessageServlet.java | 5 --- .../quickstart/servlet/MyServlet.java | 4 -- .../websockets/WebSocketServer.java | 40 +++++++++++++++++++ .../undertow/quickstart/websockets/index.html | 37 +++++++++++++++++ 5 files changed, 81 insertions(+), 9 deletions(-) create mode 100644 undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/websockets/WebSocketServer.java create mode 100644 undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/websockets/index.html diff --git a/undertow/quickstart/src/main/java/Doc b/undertow/quickstart/src/main/java/Doc index 29f78df..284128f 100644 --- a/undertow/quickstart/src/main/java/Doc +++ b/undertow/quickstart/src/main/java/Doc @@ -15,6 +15,10 @@ mvn clean install dependency:copy-dependencies http://localhost:8080/myapp/messageServlet http://localhost:8080/myapp/myServlet +3. WebSocketServer + + java -cp target/dependency/*:target/undertow-quickstart.jar org.wildfly.undertow.quickstart.websockets.WebSocketServer + 3. ChatServer java -cp target/dependency/*:target/undertow-quickstart.jar org.wildfly.undertow.quickstart.chat.ChatServer diff --git a/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/servlet/MessageServlet.java b/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/servlet/MessageServlet.java index d123304..acfd037 100644 --- a/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/servlet/MessageServlet.java +++ b/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/servlet/MessageServlet.java @@ -3,14 +3,11 @@ import java.io.IOException; import java.io.PrintWriter; -import javax.servlet.ServletConfig; import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -@WebServlet("/messageServlet") public class MessageServlet extends HttpServlet { private static final long serialVersionUID = 6861632231065498153L; @@ -27,6 +24,4 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws S writer.close(); } - - } diff --git a/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/servlet/MyServlet.java b/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/servlet/MyServlet.java index 328c936..60d2d44 100644 --- a/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/servlet/MyServlet.java +++ b/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/servlet/MyServlet.java @@ -4,12 +4,10 @@ import java.io.PrintWriter; import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -@WebServlet("/myServlet") public class MyServlet extends HttpServlet { private static final long serialVersionUID = 2378494112650465478L; @@ -26,6 +24,4 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws S writer.close(); } - - } diff --git a/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/websockets/WebSocketServer.java b/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/websockets/WebSocketServer.java new file mode 100644 index 0000000..97d33d8 --- /dev/null +++ b/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/websockets/WebSocketServer.java @@ -0,0 +1,40 @@ +package org.wildfly.undertow.quickstart.websockets; + +import java.io.IOException; + +import io.undertow.Handlers; +import io.undertow.Undertow; +import io.undertow.server.handlers.resource.ClassPathResourceManager; +import io.undertow.websockets.WebSocketConnectionCallback; +import io.undertow.websockets.core.AbstractReceiveListener; +import io.undertow.websockets.core.BufferedTextMessage; +import io.undertow.websockets.core.WebSocketChannel; +import io.undertow.websockets.core.WebSockets; +import io.undertow.websockets.spi.WebSocketHttpExchange; + +public class WebSocketServer { + + public static void main(String[] args) { + Undertow server = Undertow.builder().addHttpListener(8080, "localhost") + .setHandler(Handlers.path().addPrefixPath("/myapp", Handlers.websocket(new WebSocketConnectionCallback(){ + + @Override + public void onConnect(WebSocketHttpExchange exchange,WebSocketChannel channel) { + + channel.getReceiveSetter().set(new AbstractReceiveListener(){ + + @Override + protected void onFullTextMessage(WebSocketChannel channel, BufferedTextMessage message) throws IOException { + WebSockets.sendText(message.getData(), channel, null); + }}); + + channel.resumeReceives(); + } + })) + .addPrefixPath("/", Handlers.resource(new ClassPathResourceManager(WebSocketServer.class.getClassLoader(),WebSocketServer.class.getPackage())).addWelcomeFiles("index.html"))) + .build(); + + server.start(); + } + +} diff --git a/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/websockets/index.html b/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/websockets/index.html new file mode 100644 index 0000000..98d5ebb --- /dev/null +++ b/undertow/quickstart/src/main/java/org/wildfly/undertow/quickstart/websockets/index.html @@ -0,0 +1,37 @@ + +Web Socket Test + + +
+ + +
+ + \ No newline at end of file