代码之家  ›  专栏  ›  技术社区  ›  Barry Michael Doyle

React中的gRPC流未按预期工作

  •  0
  • Barry Michael Doyle  · 技术社区  · 6 年前

    我正在测试我的react应用程序中的gRPC流媒体。尽管我有点麻烦。 我们已经测试了bloom中的流,它每2秒成功地流一个事件,最多8个流。

    然而,当我在React应用程序中尝试时,流会启动,然后很长一段时间内什么也不会发生(大约等于完成所有数据流所需的时间),然后它只会一次注销所有数据。

    我就是这样设置组件的:

    const MyComponent = () => {
      const startStream = () => {
        console.log('stream start')
        const streamer = myService.testStreaming(new Empty(), {})
        streamer.on('error', err => console.log({ err }))
        streamer.on('status', status => console.log({ status }))
        streamer.on('data', response => console.log(response.toObject()))
        streamer.on('end', () => console.log('stream end'))
      }
    
      useEffect(() => {
        startStream()
      }, [])
    
      return null
    }
    

    如上所述,我的输出是 stream start 等待+15秒 然后 8 lines of responses .

    如前所述,在bloom中,它按预期每2秒成功地发送一个新流。不像在我的React应用程序中,它只是等待很长时间,然后触发 on data

    Bloom

    Console

    在“我的网络”选项卡中,streamvents也会在挂起的启动中被jsut,持续+15秒。

    0 回复  |  直到 6 年前
        1
  •  1
  •   hoffmanc    6 年前

    您需要确保使用的是grpc web的文本模式,因为二进制格式当前不支持正确的流媒体:

    https://github.com/grpc/grpc-web/issues/344#issuecomment-433288348