背景: 这个websocket 因为使用的地方不多,并没有独立出一个项目,是集成在已有的服务中。
1: gateway 配置
- id: service-test
uri: lb:ws://service-test
predicates:
- Path=/ws/**
filters:
- StripPrefix=1
注释:
lb:ws: 表示要转发websocket协议
Path=/ws/** 表示请求path 是 ip:port/ws/** 请求,会转发到 id 为 service-test 的服务
StripPrefix=1 过滤掉/ws的路径
ok 启动 gateway , 我的gateway 端口是 7002
2: service-test 服务配置
pom.xml 添加 websocket的配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
配置代码(这里只展示连接的代码,其他的可以看下文档)
@ServerEndpoint("/webSocket")
@Component
public class WebSocketStart {
private static Map<String, List<SessionInfo>> sessionMap = Maps.newConcurrentMap();
/**
* 连接
*/
@OnOpen
public void connected(Session session) {
session.getAsyncRemote().sendText("小伙子登陆成功!!!");
// cacheSession(session);
}
}
ok 启动 service-test , 我的 service-test 端口是 8091
先测试下 service-test 是否能连接成功。
再来测试下 gateway