读书人

基于html5的WebSocket施用方式。承接j

发布时间: 2012-11-15 15:16:14 作者: rapoo

基于html5的WebSocket使用方式。承接jetty配置

html5学习总结:

?

创建类:WebSearchServlet.java

package org.search.servlet;import javax.servlet.http.HttpServletRequest;import org.eclipse.jetty.websocket.WebSocket;import org.eclipse.jetty.websocket.WebSocketServlet;public class WebSearchServlet extends WebSocketServlet{/** *  */private static final long serialVersionUID = 5136484809757218548L;public WebSocket doWebSocketConnect(HttpServletRequest arg0, String arg1) {return new SearchServlet();}}

?

创建类:SearchServlet.java

package org.search.servlet;import org.eclipse.jetty.websocket.WebSocket;public class SearchServlet implements WebSocket{public void onClose(int arg0, String arg1) {System.out.println("onClose");}public void onOpen(final Connection conn) {System.out.println("onOpen"); new Thread() {             @Override             public void run() {                 try {                 conn.sendMessage("sdfsdf");                 int i =0;                     while (true) {                         sleep(1000);                         conn.sendMessage("Count:" + (i++));                     }                 } catch (final Exception e) {                     System.err.println(e.getMessage());                 }             }         }.start();}}

?

在JSP目录下新建文件comet.html内容如下:

<html>     <head>         <title>WebSoket Demo</title>         <script type="text/javascript">             if (!window.WebSocket) {                 alert("WebSocket not supported by this browser!");             }                          function display() {                 var valueLabel = document.getElementById("valueLabel");                 valueLabel.innerHTML = "";                 var ws = new WebSocket("ws://localhost:9999/comet.do");                 ws.onmessage = function(evt) {                     valueLabel.innerHTML = evt.data;                 };                 ws.onclose = function() {                 };                 ws.onopen = function() {                     ws.send("Hello, Server!");                 };                             }         </script>     </head>     <body onload="display();">         <div id="valueLabel"></div>     </body> </html>

?

运行jetty.访问地址http://localhost:9999/comet.html效果如下:

?

基于html5的WebSocket施用方式。承接jetty配置

1 楼 limingnihao 2011-08-04 没看懂啊。楼主,威慑呢么用jetty,tomcat支持么。 2 楼 hsys 2011-09-08 哥们,你这个导入了哪些包? 我用Tomcat做web容器,导入jetty的一些包,总是报错,java.lang.NullPointerException
at org.eclipse.jetty.websocket.WebSocketFactory.upgrade(WebSocketFactory.java:106)
at org.eclipse.jetty.websocket.WebSocketServlet.service(WebSocketServlet.java:77)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)

读书人网 >Web前端

热点推荐