Websocket支持

说明

  • soul网关是支持 websocket的代理。

  • websocket支持中,使用了divide插件。

插件设置

  • soul-admin —> 插件管理 —> divide,设置为开启。

  • 在网关的 pom.xml 文件中新增依赖

  1. <!--if you use http proxy start this-->
  2. <dependency>
  3. <groupId>org.dromara</groupId>
  4. <artifactId>soul-spring-boot-starter-plugin-divide</artifactId>
  5. <version>${last.version}</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.dromara</groupId>
  9. <artifactId>soul-spring-boot-starter-plugin-httpclient</artifactId>
  10. <version>${last.version}</version>
  11. </dependency>

请求路径

  • 使用soul代理websocket的时候,其请求路径为(例子):ws://localhost:9195/?module=ws&method=/websocket&rpcType=websocket
  1. 参数详解:
  2. 1.localhost:8080 soul启动的ip和端口。
  3. 2.module(必填):值是你用来匹配selector的关键
  4. 3.method (参数): 你的 websocket路径,同时也用做匹配rule
  5. 4.rpcType websocket 必填,且必须为websocket
  • divide插件中选择器新增一条配置,如下

Websocket支持 - 图1

  • 在这一条选择器下新增一条 规则:

Websocket支持 - 图2

  • 总结,这个时候注意看你的路径 ws://localhost:9195/?module=ws&method=/websocket&rpcType=websocket

    它就会被你新增的选择器规则匹配,然后代理的的真实websocket地址为:127.0.0.1:8080/websocket,这样soul就进行的websocket的代理。

    你就可以进行和websocket服务进行通信了,就是这么简单。

  • 最后再说一句,module,method 命名和值,你完全可以自己来决定,我的只是列子,只要选择器 和规则能够匹配就行。