您的位置:首页 > 编程语言 > Java开发

关于Spring与WebSocket结合的简单例子

2015-11-14 16:30 537 查看
      我的运行环境是:Tomcat 8.0 + Spring 4.0 + Myeclipse2014 + Firefox 42

       JDK 1.8 不支持Spring 4.0 之前的版本

      使用Google浏览器,Spring可能会抛出异常:The extension [x-webkit-deflate-frame] is not supported] with root cause

       使用maven 管理jar包 

     


        JAVA代码

        WebSocket处理类

       public class MyHandler extends TextWebSocketHandler implements WebSocketHandler {

    @Override

    public void handleTextMessage(WebSocketSession session, TextMessage message) {

    System.out.println("-------onMessage-------");

    

       System.out.println(message.toString());

       System.out.println(session.getRemoteAddress());  

      

         try {

       
session.sendMessage(new TextMessage("hello"));  //发送消息给客户端
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

        }

   }  

  与客户端连接

  @Configuration  

  @EnableWebSocket

  public class WebSocketConfig implements WebSocketConfigurer{

@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/myHandler");
 
}
@Bean

        public WebSocketHandler myHandler() {

           return new MyHandler();

        }

  }

  JSP代码

  <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

4000

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML >

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>My JSP 'index.jsp' starting page</title>

  

    <script src="http://cdn.sockjs.org/sockjs-0.3.min.js"></script>  

  

    <script type="text/javascript">  

      var ws = null;

      var result = 1;

         ws = new WebSocket('ws://127.0.0.1:8082/day_0900_WebSocket/myHandler');   //此处的day_0900_WebSocket项目名,myHandler与WebSocketConfig 里        的/myHandler对应是建立连接的关键。

         ws.onopen = function () {      //通信连接成功后执行此代码。

            result = 2;

               

               

            };  

  

         ws.onmessage = function (event) {   //接受服务端消息时执行此代码

             

                alert(event.data);

            };  

  

         ws.onclose = function (event) {     // 连接关闭时执行此代码

            

               

            };  

        function  my(){

          if(result == 2){

          ws.send("dd");     //向客户端发送消息

       

          }

        }

   

    </script>  
</head>
<body>

     <noscript><h2 style="color: #ff0000">Seems your browser doesn't support Javascript! Websockets   

    rely on Javascript being enabled. Please enable  

    Javascript and reload this page!</h2></noscript>  

    <button onclick="my()">hello</button>

  </body>

</html>

       到此,程序完成,当然不要忘记配置XML文件(正常配置),这个例子比较简单,只要环境搭建的没有问题,参照spring文档,应该没有什么问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  websocket spring