【问题标题】:gRPC c# file download/upload + web client sidegRPC c# 文件下载/上传 + Web 客户端
【发布时间】:2020-04-16 13:06:00
【问题描述】:

主要问题:

我正在寻找一种解决方案来提高大文件的上传/下载速度。我听说过相对较新的技术 gRPC。我知道这对服务器到服务器的通信有好处,例如微服务架构。

客户

但是我需要前端(浏览器)上的文件上传/下载组件(类似于 Fine 上传器、jQuery 文件上传插件、Resumable.js)并支持 gRPC。 我可以自己做支持。但我不知道如何以及什么以及是否有可能。 所以我需要一个例子或一个建议或指向正确的方向。 无论 JS 端:vanilla、react、angular ...

服务器端

  • c# 更可取
  • node.js 可能
  • java 可行

对该主题的研究

请帮忙,或者至少说这是不可能的

【问题讨论】:

    标签: c# grpc grpc-web


    【解决方案1】:

    是的,可以使用 gRPC 在浏览器和服务器之间进行通信。我建议您在实施解决方案之前进行概念验证。

    gRPC使用protobuf进行通信,需要通信的数据封装在一个protobufmessage中。

    gRPC Java File Download Example 的第一个答案是正确的。为了能够通过网络传输文件,您必须将其转换为 bytes

    用他的例子,

    message DataChunk {
       bytes data = 1;
    }
    
    service imageService {
       rpc DownloadProductImage(DownloadProductImageRequest) returns(stream DataChunk);
    }
    

    所有这些代码都应该在一个 protofile 中,并且应该使用 protobuf 生成器生成实现(通常它是 java 的 maven 插件)。

    在提供的示例中要注意的重点是单词 stream,这将使您能够将字节发送到服务器,反之亦然。在示例中,他从服务调用 DownloadProductImage 下载字节流。

    这是一个很好的起点gRPC Java BasicsgRPC ConceptsBuilding a gRPC service with Java

    【讨论】:

      猜你喜欢
      • 2018-05-15
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      相关资源
      最近更新 更多