WebSocket基于Tomcat7的程序
当我开始学习GUISOCKET编程时,我一直有一个梦想,我希望有一天我能在WEB上实现这个聊天程序。虽然QQ等很多聊天程序已经实现,但是他们的实现都是AJAX,无非是改进AJAX或者使用FLEX。个人觉得实现起来太复杂了,没有研究!!几个星期前,我整天都有时间学习,用jetty编写聊天程序,然后聊天就实现了。然而,jetty服务器从未使用过。中间服务器差不多用了一个星期,让我很纠结。最后,我可以在实验室的电脑上成功运行!!!但可悲的是,当我移植到我的笔记本上时,却出现了各种奇怪的错误!!所以,我又纠结了,今晚,奇迹发现tomcat居然也支持了,所以真的安装了tomcat7.0.27次测试,惊人的发现类似于jetty的实现,于是写了一个小测试程序,测试成功!!以下是我的代码,有兴趣的童鞋可以一起学习哦!!!!
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.
16.
17.
18.
19.
20.
50.
51.
52.
53. "text" id="msg" value="" size="20"
54. "button" οnclick="sendMessage();" value="发送"
55.
56.
具体实现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. * 创建日期 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,通过他将数据返回到客户端,以下是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.
需要注意的是,在研发过程中,必须在tomcatlib目录下复制2个JAR包:catalina.jar tomcat-coyote.jar
但是在你运行的时候一定要把这两个包删掉,否则,就会和tomcat的包矛盾!!
她们的关系,也有一定的了解,今天暂时写到这里吧!
本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。
免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com