WebSocket基于Tomcat7的程序

2023-05-22


当我开始学习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