Spring Boot STOMP WebSocket域名连接失败,IP连接正常求助
Spring Boot WebSocket(STOMP) 域名连接失败问题
我在Spring Boot应用中使用Spring WebSocket结合STOMP协议时遇到了问题:通过IP地址可以成功建立WebSocket连接,但使用域名连接时,WebSocket状态显示已结束,无法正常连接。
我的WebSocket配置代码如下:
@Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/websocket").setAllowedOriginPatterns("*").withSockJS(); } }
连接情况截图:
- IP地址连接成功:

- 域名连接失败:

请问有哪位开发者遇到过类似问题?
排查方向及解决建议
1. 域名与网络基础配置检查
- 先用
ping或nslookup命令验证域名解析的IP是否和你测试的服务器IP一致,避免域名指向错误 - 确认域名对应的端口(WebSocket默认80/443,非默认端口需确保防火墙、云安全组开放该端口,且域名绑定的端口配置正确)
- 如果是HTTPS域名,必须用
wss://协议连接,浏览器会拦截HTTPS页面里的ws://非安全连接
2. 反向代理配置(如Nginx)
如果域名通过Nginx等反向代理访问,必须配置WebSocket支持:
location /websocket { proxy_pass http://你的服务器IP:端口; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; }
确保代理没有拦截WebSocket握手请求,且域名路径的转发规则和IP访问时一致
3. 浏览器安全策略验证
虽然配置了setAllowedOriginPatterns("*"),但HTTPS环境下浏览器对ws://连接限制极严,前端连接地址必须和域名协议匹配:
- 域名是HTTPS → 用
wss://你的域名/websocket - 域名是HTTP → 用
ws://你的域名/websocket
4. 查看浏览器错误日志
打开浏览器控制台(F12),查看Network和Console标签下的具体错误信息,比如403、404、超时等,这些日志能直接定位问题根源
内容的提问来源于stack exchange,提问作者Shavkat Turakulov
相关产品推荐
相关产品推荐

