春天的 websocket stomp over sockjs 重定向到 http 协议,而在关键的 web 服务中起源是 https
Posted
技术标签:
【中文标题】春天的 websocket stomp over sockjs 重定向到 http 协议,而在关键的 web 服务中起源是 https【英文标题】:websocket stomp in spring over sockjs redirects to http protocol while the origin is https in pivotal web services 【发布时间】:2015-12-09 07:18:11 【问题描述】:我正在使用 stomp 和 sockjs
开发一个 Spring Web 聊天应用程序。我在关键的 Web 服务中上传了应用程序。我知道它使用不同的端口,即 4443。一旦我运行应用程序,websocket
就会失去与 undefined 的连接
控制台出现以下错误: 正在打开 Web Socket...
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)
哎呀!失去与未定义的连接
请帮忙,这东西真的很烦我
【问题讨论】:
【参考方案1】:没有重定向到不同端口的权限。您可以通过在注册 stomp 端点时将所有来源设置为允许来绕过此限制。 我想指出,这是一个非常糟糕的解决方案。你应该利用代理,但我这里缺乏信息来帮助你。
以下是您可能会觉得有用的代码:
public void registerStompEndpoints(StompEndpointRegistry registry)
registry.addEndpoint("/your_endpoint").setAllowedOrigins("*").withSockJS();
【讨论】:
谢谢,我确实做到了。但是现在它带来了 403 错误,WebSocket 握手期间出错:意外响应代码:403 spring 官网上也有一个很好的教程:https://spring.io/blog/2015/01/20/the-resource-server-angular-js-and-spring-security-part-iii以上是关于春天的 websocket stomp over sockjs 重定向到 http 协议,而在关键的 web 服务中起源是 https的主要内容,如果未能解决你的问题,请参考以下文章
春天引导+的Spring Web插槽+ RabbitMQ的STOMP网站
Spring stomp over websocket SubscribeMapping 不起作用
Spring STOMP over Websocket - “私人”消息传递
RabbitMQ Stomp over websocket:无法检索排队的消息