【发布时间】:2015-07-02 00:02:33
【问题描述】:
我的错误显示在浏览器的控制台中:
"WebSocket connection to 'ws://localhost:32768/DspClusterWebServices/myHandler' failed: Unexpected response code: 200"
我正在使用Spring Websockets 4.1.5 和Tomcat 8.0.18。我的 WebSocketConfigurer 实现类如下所示:
@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 不是很好吗?
【问题讨论】:
-
看看这个,请stackoverflow.com/a/14555549/592355 特别是:“至于您的“意外响应代码:200”错误,我猜您在客户端使用的WebSocket URL没有指向有效的服务器端脚本,但如果没有更多信息,很难对此发表评论。”
-
需要什么资料?我使用的是Tomcat 8.0.18,可以在Tomcat安装的lib文件夹中看到websocket-api.jar和tomcat-websocket.jar...
-
Controller注解怎么样? (它不在 WebSocket 示例中)...您认为这不会干扰吗?
-
hummm...this 听起来不错:请尝试连接到“ws://localhost:8080/myApp/myHandler/websocket”!?
-
xerx593 请回答包含该链接以及此链接:github.com/spring-projects/spring-boot/issues/2586 添加 websocket 后,它给了我错误“无法解析 Origin 标头值 [null]”,然后导致我到那个链接。我必须将 .setAllowedOrigins("*") 添加到我的 addHandler() 方法中。然后它终于奏效了!如果你回答我会检查它,所以你得到你应得的荣誉
标签: java javascript tomcat websocket spring-websocket