谁用了我的宇宙大魔王 2016-12-01 04:56 采纳率: 100%
浏览 3531
已结题

springMVC中使用websocket报错404

图片说明

似乎是springmvc拦截了ws请求,怎么才能让springMVC不拦截WS呢

JS代码

   var websocket = null; 
  //判断当前浏览器是否支持WebSocket
  if('WebSocket' in window){
     websocket = new WebSocket("ws://localhost:8080/VM2.0/websocket");
  }
  else{
      alert('浏览器不支持websocket,请更换浏览器');
  };

  //连接发生错误的回调方法
  websocket.onerror = function(){
      console.log("websocket连接失败");
  };

  //连接成功建立的回调方法
  websocket.onopen = function(event){
      console.log("websocket连接成功");
  };

java代码

 //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
    private static int onlineCount = 0;
    //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识
    private static CopyOnWriteArraySet<MySocket> webSocketSet = new CopyOnWriteArraySet<MySocket>();
    //与某个客户端的连接会话,需要通过它来给客户端发送数据
    private Session session;
    /**
     * 存储当前有效的session对象
     */
    private static Queue<Session> sessionSet = new ConcurrentLinkedQueue<Session>();
    /**
     * 连接建立成功调用的方法
     * @param session  可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据
     */
    @OnOpen
    public void onOpen(Session currentSession){
        if(sessionSet.contains(currentSession) == false){
            sessionSet.add(currentSession);
            System.out.println("WebSocketTest.onOpen()================Add=" + sessionSet.size());
        }
        System.out.println("Server say:Client connected");

    }
  • 写回答

1条回答 默认 最新

  • AirMario 2016-12-01 05:51
    关注

    自己写个拦截器啊。放行websocket请求就行了啊

    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题