spring 中的 websocket stomp 在 sockjs 上重定向到 http 协议,而在关键 Web 服务中源是 https

websocket stomp in spring over sockjs redirects to http protocol while the origin is https in pivotal web services

我正在使用 stomp 和 sockjs 开发 spring 网络聊天应用程序。我在关键的网络服务中上传了应用程序。我知道它使用不同的端口,即 4443。一旦我 运行 应用程序 websocket 失去与 undefined

的连接

控制台出现以下错误: 正在打开网络套接字...

WebSocket 连接到

'wss://homeworkpavilion.cfapps.io:4443/chat/193/dqu_2erz/websocket' failed: Error during WebSocket handshake: Unexpected response code: 302

POST https://homeworkpavilion.cfapps.io/chat/193/_bhfpyma/xhr_streaming 500 (Internal Server Error)

POST https://homeworkpavilion.cfapps.io/chat/193/nys00vmj/xhr 500 (Internal Server Error)

糟糕!与 undefined

失去联系

请帮忙,这东西真的很烦我

没有重定向到不同端口的权限。您可以通过在注册 stomp 端点时将所有来源设置为允许来绕过此限制。 我想指出,这是一个非常糟糕的解决方案。你应该利用代理,但我这里缺少信息来帮助你。

以下是您可能会觉得有用的代码:

public void registerStompEndpoints(StompEndpointRegistry registry) {
   registry.addEndpoint("/your_endpoint").setAllowedOrigins("*").withSockJS();
}