我有一个使用 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"
- 1 回答
- 0 关注
- 276 浏览
添加回答
举报
0/150
提交
取消