springboot websocket 端口配置
时间: 2025-02-17 16:16:27 浏览: 169
### 配置Spring Boot中的WebSocket端口
在Spring Boot应用程序中配置WebSocket端口主要通过自定义`ServerProperties`来实现。默认情况下,Spring Boot会使用内嵌的Tomcat、Jetty或其他服务器组件监听8080端口用于HTTP请求以及WebSocket连接。如果希望更改WebSocket使用的具体端口号,则可以通过多种方式完成。
一种方法是在`application.properties`文件里指定不同的server.port属性值[^1]:
```properties
# application.properties
server.port=9090
```
上述设置不仅影响到HTTP服务也会影响到基于同一应用实例下的WebSocket通信所依赖的服务端口。不过有时候可能需要让HTTP和WebSocket运行于不同端口上,在这种场景下可以考虑创建独立的Servlet容器配置类并重写相应的方法以达到目的[^2]:
```java
@Configuration
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {}
};
// 设置websocket专用端口
tomcat.addAdditionalTomcatConnectors(createWebSocketConnector());
return tomcat;
}
private Connector createWebSocketConnector(){
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(9095); // 自定义WebSocket端口
return connector;
}
}
```
对于更复杂的网络环境或者当项目已经处于生产环境中时,建议采用更加灵活的方式比如借助外部代理(如Nginx)来进行流量分发从而间接改变WebSocket的实际工作端口[^3]。
阅读全文
相关推荐
















