gateway 整合 websocket demo

Posted zhangxingsheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gateway 整合 websocket demo相关的知识,希望对你有一定的参考价值。

 背景: 这个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

技术图片

以上是关于gateway 整合 websocket demo的主要内容,如果未能解决你的问题,请参考以下文章

Nacos + Gateway 实现动态刷新路由

Nacos + Gateway 实现动态刷新路由

Nacos + Gateway 实现动态刷新路由

Nacos + Gateway 实现动态刷新路由

F2 workerman 整合入项目

springboot2.1.3整合websocket和websocket-security支持跨域连接