应用Jetty的WebSocket使用方式
使用Jetty的WebSocket使用方式
首先,需要服务器Jetty. 因为现在Tomcat并不支持Websocket
解压好服务器Jetty后,在命令行(cmd)(Jetty当前目录)中运行Java –jar start.jar既可
编写服务器代码:
创建类:WebSearchServlet.java
创建类:SearchServlet.java
Web.xml代码
HTML代码:
首先,需要服务器Jetty. 因为现在Tomcat并不支持Websocket
解压好服务器Jetty后,在命令行(cmd)(Jetty当前目录)中运行Java –jar start.jar既可
编写服务器代码:
创建类:WebSearchServlet.java
public class WebSearchServlet extends WebSocketServlet{ private static final long serialVersionUID = 5136484809757218548L; public WebSocket doWebSocketConnect(HttpServletRequest request, String arg1) { return new SearchServlet(); } }
创建类:SearchServlet.java
public class SearchServlet implements WebSocket{ public SearchServlet(){ } public void onClose(int arg0, String arg1) { System.out.println("onClose"); } public void onOpen(final Connection conn) { new Thread() { @Override public void run() { try { while (true) { sleep(1000); conn.sendMessage("Count"); } } catch (final Exception e) { e.printStackTrace(); } } }.start(); } }
Web.xml代码
<servlet> <servlet-name>WebSocket</servlet-name> <servlet-class>org.search.servlet.WebSearchServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>WebSocket</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
HTML代码:
<script> function websocket(x,y) { var ws = new WebSocket("ws://16.187.87.35:8080/html5service/comet.do?x="+x+"&y="+y); ws.onmessage = function(evt) { console.log("evt.data:"+evt.data); }; ws.onclose = function() { }; ws.onopen = function() { ws.send(x+","+y); }; }; $(function(){ Websocket("1","2"); }); </script>