You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在gRPC-Web中使用gRPC双向流式传输?

关于gRPC-Web在浏览器中实现双向流式传输的问题

可以通过gRPC-Web在浏览器中实现双向流式传输,但需要满足特定的部署和配置条件

  • gRPC-Web的双向流式支持:从1.0版本起,gRPC-Web正式支持双向流式RPC。你给出的服务定义完全符合双向流式的语法要求,可被gRPC-Web兼容处理:

    rpc TypingStream (stream OutgoingTyping) returns (stream IncomingTyping);
    }
    
  • 必要的配置前提:

    • 必须部署gRPC-Web代理(比如Envoy):浏览器原生HTTP/2无法直接处理gRPC双向流式调用,需要代理将gRPC-Web请求转换为标准gRPC请求,与后端服务完成通信。
    • 后端gRPC服务需运行在支持HTTP/2的环境中,确保能正常处理双向流式的请求交互。
  • 客户端实现注意事项:

    • 使用gRPC-Web提供的JS/TS客户端库生成对应服务的客户端代码。
    • 调用双向流式方法时,通过返回的流对象完成消息发送和接收监听,示例逻辑如下:
      const typingStream = client.typingStream();
      // 发送OutgoingTyping消息
      typingStream.write({ /* 填充你的OutgoingTyping数据 */ });
      // 监听IncomingTyping消息
      typingStream.on('data', (incomingMsg) => {
        // 处理接收到的IncomingTyping数据
      });
      // 监听流关闭事件
      typingStream.on('end', () => {
        // 流结束后的清理逻辑
      });
      

内容的提问来源于stack exchange,提问作者Nurbek Zhussip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 01:06:24