我在连接到 websocket 时的状态为 200,但这是一个错误?

我的错误显示在浏览器的控制台中:

"WebSocket connection to 'ws://localhost:32768/DspClusterWebServices/myHandler' failed: Unexpected response code: 200"

我正在使用 和 .我的 WebSocketConfigurer 实现类如下所示:Spring Websockets 4.1.5Tomcat 8.0.18

@Configuration
@Controller
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer
{
   class MyHandler implements WebSocketHandler
   {
      @Override
      public void afterConnectionEstablished(WebSocketSession session) throws Exception
      {
         System.out.println("afterConntectionEstablished called");
      }

       ...implements rest of functions with a System.out.println and false for supportsPartialMessages()

      }
   }

   @Override registerWebSocketHandlers(WebSocketHandlerRegistry registry)
   {
      registry.addHandler(myHandler(), "myHandler").withSockJS();
   }

   @Bean
   public WebSocketHandler myHandler()
   {
      return new MyHandler();
   }
}

我的 testWebsocketClient.js 尝试使用此代码进行连接,但错误代码为 200:

websocket = new WebSocket("ws://localhost:8080/myApp/myHandler");

我不知道下一步该尝试什么。我以为这会导致 AfterConnectionEstablished(WebSocketSession session) 方法触发?代码200不是很好吗?


答案 1

请检查 http://procbits.com/connecting-to-a-sockjs-server-from-native-html5-websocket

追加(到您的URL)后,它将为您提供错误/websocket

无法解析源标头值 [空]

;) ,然后反过来将您引导至该链接

你必须添加到你的方法,然后它终于可以工作了!.setAllowedOrigins("*")addHandler()


答案 2

作为我的另一个答案:[https://stackoverflow.com/a/53272666/2930417][1]

我用弹簧靴2+踩踏。

删除,那么一切都好。.withSockJS()

我不知道原因,但为我工作。