配置springcloud 网关gateway 转发websocket请求

本文介绍了如何在SpringCloudGateway中配置网关,以实现微服务架构中的统一入口,确保所有请求经过网关并转发到对应的服务。重点讲解了`routes`配置、`predicates`和`filters`在路由策略中的作用,以及前端如何调整WebSocket连接端口.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网关是整个项目的统一入口

这是直接访问消息服务的请求路径 端口号是20007

WebSocketService.init("ws://127.0.0.1:20007/ws/" + 用户id)

显然这样是不符合微服务的方案,所有请求必须经过网关处理,转发到各个服务之中

所以我们需要在网关中的yml或者nacos中添加以下配置

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true # 启用服务发现
          lower-case-service-id: true
      routes:
        - id: 消息模块-websocket
          uri: lb:ws://cloud-message
          # uri: lb:ws://127.0.0.1:20007
          predicates:
            - Path=/ws/**

  

  1. id: id是一个字符串,用于唯一标识一个路由。它是可选的,但建议为每个路由提供一个有意义的ID,以便于管理和诊断。

  2. uri: uri属性指定了下游服务的URL。它可以是一个绝对URL,也可以是一个相对于网关的相对URL。在微服务架构中,通常会使用服务注册和发现机制(如Eureka)来动态获取服务实例的地址。

  3. predicates: predicates是一个条件列表,用于匹配传入的HTTP请求。每个条件都是一个谓词(Predicate),可以基于请求的各种属性进行匹配,例如请求方法(GET、POST等)、路径模式、查询参数、头信息等。如果请求满足所有谓词条件,那么它就会被路由到该路由配置的下游服务。

  4. filters: filters是一个过滤器列表,用于在请求被转发到下游服务之前或响应返回给客户端之前对请求和响应进行处理。过滤器可以是内置的(如StripPrefix、Retry等),也可以是自定义的。过滤器可以修改请求和响应的内容、添加或删除头信息、执行安全检查等。

前端修改为 端口号改为网关20000

WebSocketService.init("ws://127.0.0.1:20000/ws/" + 用户id)

打开浏览器开发者工具效果 101 成功

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值