最近需要完成一个javaweb项目,但是没有和数据库连接而是通过websocket通讯实现和服务器端数据交互。我搜了好多,网上大部分都是通过页面websocket连接本地服务器或连接异地服务器,但是这些都把连接地址暴露在了外面,不是我想要的。本人希望websocket连接、数据处理等都是在java后端完成的,结合网上的一些参考资料终于实现了此功能。
这里有个比较好的Java后端WebSocket的Tomcat实现栗子,不过是将本地tomcat作为服务器,websocket连接也暴露在页面。
接下来讲讲本人的实现,本人实现是使用springMVC框架,但是我们只用控制层即可:
Eclipse + JDK1.8 + tomcat8
1、首先我在控制层包中创建一个WebSocketConnect类,在此类中实现websocket的连接方法。注意需要事先引入tomcat服务器lib文件夹中的websocket-api.jar和tomcat-websocket.jar,jsp-api.jar、servlet-api.jar,后面两个可根据需要引入。
//WebSocketClient连接 public class WebSocketConnect {//websocket建立连接 public void ClientConnect(String userInfo,HttpServletRequest request) { HttpSession session = request.getSession(); try { WebSocketClient webSocketClient = new WebSocketClient(new URI("ws://服务器ip地址:8080/websocket"),new Draft_17()) { //打开链接 @Over