为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Kubernetes 部署并通过 Ingress 连接后 SSE 损坏

使用 Kubernetes 部署并通过 Ingress 连接后 SSE 损坏

Go
UYOU 2023-07-31 15:57:11
我有一个使用 EventStream 的 ReactJS 客户端和一个实现 SSE 的 golang 后端。当我将浏览器连接到在 localhost 上运行的后端时,以及当我的后端在带有端口转发的 k8s 上运行时,一切似乎都正常。一旦我使用主机名创建入口(这样我就不必一直进行端口转发),SSE 就停止工作。我仍然看到客户端发送请求,并且该请求被后端接收并注册。但是,当发送事件时,它永远不会到达我的 ReactJS 应用程序。在我的 ReactJS 应用程序中:export default class CustomersTable extends Component {  constructor(props) {    super(props)    this.eventSource = new EventSource('/v1/events')  }  updateCustomerState(e) {    let event = JSON.parse(e.data)    switch (event.event_type) {      case 'customerStateUpdate':        let newData = this.state.customers.map(item => {          if (item.name === event.customer_name) {            item.k8sState = event.customer_state          }          return item        })        this.setState(Object.assign({}, { customers: newData }))        break      case 'contentUpdate':        this.reload()        break      default:        break    }  }  componentDidMount() {    this.setState({ isLoading: true })    ReactModal.setAppElement('body')    this.reload()    this.eventSource.onmessage = e => this.updateCustomerState(e)  }  componentWillUnmount() {    this.eventSource.close()  }...
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

我在 Nginx Ingress 上使用了我的 SSE 应用程序:

   annotations:
    nginx.ingress.kubernetes.io/proxy-read-timeout: "21600"
    nginx.ingress.kubernetes.io/eventsource: "true"


查看完整回答
反对 回复 2023-07-31
  • 1 回答
  • 0 关注
  • 276 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信