WebSocket基于Tomcat7的程序
當我開始學習GUISOCKET編程時,我一直有一個夢想,我希望有一天我能在WEB上實現(xiàn)這個聊天程序。雖然QQ等很多聊天程序已經實現(xiàn),但是他們的實現(xiàn)都是AJAX,無非是改進AJAX或者使用FLEX。個人覺得實現(xiàn)起來太復雜了,沒有研究??!幾個星期前,我整天都有時間學習,用jetty編寫聊天程序,然后聊天就實現(xiàn)了。然而,jetty服務器從未使用過。中間服務器差不多用了一個星期,讓我很糾結。最后,我可以在實驗室的電腦上成功運行?。?!但可悲的是,當我移植到我的筆記本上時,卻出現(xiàn)了各種奇怪的錯誤??!所以,我又糾結了,今晚,奇跡發(fā)現(xiàn)tomcat居然也支持了,所以真的安裝了tomcat7.0.27次測試,驚人的發(fā)現(xiàn)類似于jetty的實現(xiàn),于是寫了一個小測試程序,測試成功??!以下是我的代碼,有興趣的童鞋可以一起學習哦!?。?!
index.jsp
1. <%@ page language='java' import='java.util.*' pageEncoding='UTF-8'%>
2. <%
3. String path = request.getContextPath();
4. "://"
5. ":"
6. "/";
7. %>
8.
9.
10.
11.
12. ">
13.
14. My JSP 'index.jsp'
15.
16.
17.
18.
19.
20.
50.
51.
52.
53. "text" id="msg" value="" size="20"
54. "button" οnclick="sendMessage();" value="發(fā)送"
55.
56.
具體實現(xiàn)servlet:
1. import
2. import
3. import
4. import
5.
6. import
7. import
8.
9. import
10. import
11. import
12.
13. /**
14. * Tomcat7 簡單的WebSocket應用, WebSocket的servlet接口集成自webSocketServlet,其本質是Serlet。
15. * 功能性描述,這部分必須以中文句點結束。
16. *
17. * 創(chuàng)建日期 2013-7-21
18. * @author longgangbai
19. * @version $Revision$ $Date$
20. * @since 3.0.0
21. */
22. public class WebSocketExtServlet extends
23. org.apache.catalina.websocket.WebSocketServlet {
24. //
25. private Logger logger=Logger.getLogger(WebSocketExtServlet.class.getSimpleName());
26.
27. private static final long
28.
29.
30. @Override
31. protected
32. ";request ws servelt");
33.
34. return new
35. @Override
36. protected void onClose(int
37. ";web socket closed :" status);
38. }
39. @Override
40. protected void
41. ";web socket onOpen !");
42. }
43. @Override
44. protected void onBinaryMessage(ByteBuffer buff) throws
45. // TODO Auto-generated method stub
46. ";web socket Received : !" buff.remaining());
47. }
48.
49. @Override
50. protected void onTextMessage(CharBuffer buff) throws
51. ";web socket Received : !" buff.remaining());
52. //getWsOutbound可以回到目前的WsOutbound,通過他將數(shù)據(jù)返回到客戶端,以下是nio的CharBuffer
53. for (int j = 0; j < 50; j ) {
54. try
55. 2000);
56. this.getWsOutbound().writeTextMessage(CharBuffer.wrap(String.valueOf(j)));
57. catch
58. // TODO Auto-generated catch block
59. e.printStackTrace();
60. }
61. }
62.
63. }
64.
65. };
66. }
67.
68. }
1.
2.
3. Tomcat7WebSocket
4.
5. websocket
6. class>com.easyway.websocket.WebSocketExtServlet
7.
8.
9. websocket
10. /echo.ws
11.
12.
13. index.html
14. index.htm
15. index.jsp
16. default.html
17. default.htm
18. default.jsp
19.
20.
需要注意的是,在研發(fā)過程中,必須在tomcatlib目錄下復制2個JAR包:catalina.jar tomcat-coyote.jar
但是在你運行的時候一定要把這兩個包刪掉,否則,就會和tomcat的包矛盾??!
她們的關系,也有一定的了解,今天暫時寫到這里吧!
本文僅代表作者觀點,版權歸原創(chuàng)者所有,如需轉載請在文中注明來源及作者名字。
免責聲明:本文系轉載編輯文章,僅作分享之用。如分享內容、圖片侵犯到您的版權或非授權發(fā)布,請及時與我們聯(lián)系進行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com


