Spring 4 WebSocket配置端口

时间:2014-09-07 09:01:56

标签: spring-mvc websocket

使用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 {

春天有这种能力吗?

4 个答案:

答案 0 :(得分:1)

AFAIK所有当前的websockets实现都依赖于通过HTTP进行的握手。握手后,现有连接将升级。你没有得到一个新的,端口保持不变。基本上所有websocket连接都以HTTP连接开始。

作为旁注,端口,IP地址等是服务器的主体,而不是应用程序本身。

可能可以配置您的服务器,以便两个端口可以用于应用程序,但它们都将用于HTTP和websocket等。另一方面,这可能对您的情况有用。

答案 1 :(得分:0)

Spring WebSocket ws:// protocol

的不同端口

由于限制,为了在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以获取详细答案。