1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.embedded;
20
21 import org.eclipse.jetty.server.Server;
22 import org.eclipse.jetty.servlet.ServletContextHandler;
23 import org.eclipse.jetty.servlet.ServletHolder;
24 import org.eclipse.jetty.websocket.api.Session;
25 import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage;
26 import org.eclipse.jetty.websocket.api.annotations.WebSocket;
27 import org.eclipse.jetty.websocket.servlet.WebSocketServlet;
28 import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;
29
30
31
32
33
34
35 public class WebSocketServer
36 {
37
38
39
40 @WebSocket
41 public static class EchoSocket
42 {
43 @OnWebSocketMessage
44 public void onMessage(Session session, String message)
45 {
46 session.getRemote().sendStringByFuture(message);
47 }
48 }
49
50
51
52
53 @SuppressWarnings("serial")
54 public static class EchoServlet extends WebSocketServlet
55 {
56 @Override
57 public void configure(WebSocketServletFactory factory)
58 {
59
60 factory.register(EchoSocket.class);
61 }
62 }
63
64 public static void main(String[] args) throws Exception
65 {
66 Server server = new Server(8080);
67
68 ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
69 context.setContextPath("/");
70 server.setHandler(context);
71
72
73 context.addServlet(new ServletHolder(EchoServlet.class),"/echo");
74
75 server.start();
76 context.dumpStdErr();
77 server.join();
78 }
79 }