使用Spring 4我需要配置WebSocket使用除HTTP之外的其他端口。 换句话说,默认情况下用户可以访问HTTP和WebSocket,如下所示:
http://server:9090/
ws://server:9090/
但我需要做以下事情:
http://server:9090/
ws://server:9999/
在代码中我只有以下内容:
@Configuration
@EnableWebSocket
public class WebSocketConfig
implements WebSocketConfigurer {
我也有Handler:
Handler extends TextWebSocketHandler {
春天有这种能力吗?
答案 0 :(得分:1)
AFAIK所有当前的websockets实现都依赖于通过HTTP进行的握手。握手后,现有连接将升级。你没有得到一个新的,端口保持不变。基本上所有websocket连接都以HTTP连接开始。
作为旁注,端口,IP地址等是服务器的主体,而不是应用程序本身。
可能可以配置您的服务器,以便两个端口可以用于应用程序,但它们都将用于HTTP和websocket等。另一方面,这可能对您的情况有用。
答案 1 :(得分:0)
由于限制,为了在App Engine Flexible Environment上使用websockets,app需要使用实例的公共外部IP直接连接到应用程序实例。可以从元数据服务器获取此IP。
所有MVC / Rest(http://)调用仍然应该从8080和App Engine Flexible Environment ws://服务器来自ws:// external_ip:65080
https://github.com/kevendra/springmvc-websocket-sample
http://localhost:8080/
ws://localhost:8080/
使用App Engine需要
http://localhost:8080/
ws://localhost:65080/ - in local
ws://external_ip:65080/ - App engine
扩展org.eclipse.jetty.websocket.server.WebSocketHandler并启动服务器上下文到65080,但我正在寻找由spring管理的服务器
答案 2 :(得分:0)
在application.yml文件上,只需更改server.port = YOUR_PORT
答案 3 :(得分:0)
将更改添加到属性文件。
在application.properties文件中,包括
server.port=YOUR_PORT
如果您使用的是.yml文件,请添加
server:
port:YOUR_PORT
目录结构为
src/main/resources/application.properties
访问here以获取详细答案。