guozewei0 2019-12-02
背景: 这个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")@Componentpublic 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