当前位置: 首页 > news >正文

心理健康教育网站建设营业推广的方式有哪些

心理健康教育网站建设,营业推广的方式有哪些,优化seo搜索,asp做的网站频繁报错 参数错误一、服务端流式处理概述 客户端向服务端发送请求#xff0c;服务端可以将多个消息流式传输回调用方和客户端流相反#xff0c;客户端流发出请求#xff0c;服务端可以传输一批消息给客户端#xff0c;直至本次请求响应完全结束。针对文件分段传输下载#xff0c;该方式非…一、服务端流式处理概述 客户端向服务端发送请求服务端可以将多个消息流式传输回调用方和客户端流相反客户端流发出请求服务端可以传输一批消息给客户端直至本次请求响应完全结束。针对文件分段传输下载该方式非常有用。 二、案例介绍 提供一个一元方法查询文件提供一个文件流传输的服务端流式方法进行文件流推送 三、服务端配置注意grpc相关配置参考我之前的文章 // 1.提供公共的实体proto文件 // 2.服务引用对应的proto文件 // 3.定义三个客户流方法syntax proto3;option csharp_namespace GrpcProject;package grpc.serviceing;// 服务端流对应的请求流和响应流message FileInfoRequest {string fileName 1; }message FileInfoResponse {string fileName 1;int64 fileSize 2;string extension 3; }message ProgressBarResponse {FileInfoResponse fileMessage 1;bytes fileBytes 2; }// serverstream.proto定义service方法syntax proto3;import google/protobuf/empty.proto; import Protos/messages.proto;option csharp_namespace GrpcProject;package grpc.serviceing;service ServerStreamRpc{// 一元文件获取展示rpc GetFileMessage(google.protobuf.Empty) returns (FileInfoResponse);// 服务端文件流处理rpc StreamingFromServer (FileInfoRequest) returns (stream ProgressBarResponse); } 服务接口实现 public class ServerStreamService : ServerStreamRpc.ServerStreamRpcBase{/// summary/// 获取文件信息/// /summary/// param namerequest空请求/param/// param namecontext服务调用上下文/param/// returns/returnspublic override TaskFileInfoResponse GetFileMessage(Empty request, ServerCallContext context){var filePath Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Files, cn-Liang-y.rar);FileInfo fileInfo new FileInfo(filePath);FileInfoResponse fileInfoResponse new FileInfoResponse();fileInfoResponse.FileName fileInfo.Name;fileInfoResponse.FileSize fileInfo.Length;fileInfoResponse.Extension fileInfo.Extension;return Task.FromResult(fileInfoResponse);}public override async Task StreamingFromServer(FileInfoRequest request,IServerStreamWriterProgressBarResponse responseStream,ServerCallContext context){var filePath Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Files, request.FileName);if (!File.Exists(filePath)){throw new FileNotFoundException(nameof(filePath));}// 进度条按照 100百分比进行划分FileInfo fileInfo new FileInfo(filePath);using var fileStream fileInfo.OpenRead();// 插入固定长度int fixedLength (int)fileStream.Length / 100;byte[] fileBytes new byte[fixedLength];int len;while ((len fileStream.Read(fileBytes, 0, fixedLength)) 0){await Console.Out.WriteLineAsync($打印字节长度{len});var response new ProgressBarResponse();response.FileMessage new FileInfoResponse{FileName fileInfo.Name,FileSize fileInfo.Length,Extension fileInfo.Extension};response.FileBytes ByteString.CopyFrom(fileBytes);await responseStream.WriteAsync(response);}}} Program注入 public class Program{public static void Main(string[] args){var builder WebApplication.CreateBuilder(args);builder.Services.AddGrpc();var app builder.Build();// 一元方法//app.MapGrpcServiceDollarService();// 客户端流//app.MapGrpcServiceClientStreamService();// 服务端流app.MapGrpcServiceServerStreamService();app.Run();}} 四、客户端配置 引用proto文件配置为客户端类型根据编译生成的函数进行传参调用创建WPF客户端提供控制条显示 button按钮触发grpc private async void download_Click(object sender, RoutedEventArgs e){Actionint action async i {progressBar.Value i;await Task.Delay(100);};await WpfClient.Show(action);} grpc客户端接口调用 public class WpfClient{public static async Task Show(Actionint action){var channel GrpcChannel.ForAddress(https://localhost:7188);var client new GrpcProject.ServerStreamRpc.ServerStreamRpcClient(channel);var fileMessage await client.GetFileMessageAsync(new Google.Protobuf.WellKnownTypes.Empty());FileInfoRequest request new FileInfoRequest();request.FileName fileMessage.FileName;var streaming client.StreamingFromServer(request);var path Path.Combine(Directory.GetCurrentDirectory(), test.rar);using var stream new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);int i 0;await foreach (var item in streaming.ResponseStream.ReadAllAsync()){stream.Write(item.FileBytes.Span);action(i);}stream.Flush();stream.Close();}} 五、执行结果 在文件根目录可以看到下载的文件 六、源码地址 链接https://pan.baidu.com/s/13_AEFHLLJS5qN8aIby8IsA  提取码72x0
http://www.w-s-a.com/news/39478/

相关文章:

  • 网站 免费 托管运营app软件大全
  • 爱网站找不到了网站设计制作要交印花税
  • 分销平台是什么意思网站如何从行为数据进行优化
  • 做网站公司职务做民俗酒店到哪些网站推荐
  • 从0到建网站wordpress导航主题模板下载地址
  • 以3d全景做的网站统计网站的代码
  • 北辰网站建设WordPress换主题文件夹
  • 做网站的合同范文百度分析工具
  • 深圳企业网站制作公司单位注册wordpress发送邮件
  • 兰州专业网站建设团队wordpress 拉取点击数
  • 基于php房产网站开发ppt模板免费下载第一ppt
  • 网站盈利模式分析怎么做山东营销网站建设联系方式
  • 二级网站建设 知乎我的个人主页模板
  • wordpress小说网站模板下载地址百度优化服务
  • 云南网页设计制作seo计费系统源码
  • 屏蔽ip网站吗行业外贸网站建设
  • 河北城乡建设学校网站常州网站建设公司平台
  • 合肥网站建设市场分析网站收录后怎么做排名
  • 湖南企业网站建设如何推广手机网站
  • 网站建设项目经历网站推广服务 商务服务
  • 加强网站的建设福州seo排名外包
  • 做婚庆找什么网站有专门为个人网站做推广的吗
  • 网站搭建要求模板学编程需要英语基础吗
  • 网上如何建网站卖量具净水机企业网站源码
  • 网站推广 软件规划设计公司年终总结
  • 视频网站开发方法微站网建站系统
  • 渐变网站网页界面设计的宗旨是什么
  • 网站排名提升工具免费韶关做网站公司
  • 做网站一个月可以赚多少钱东营市建设工程招标网
  • 网站开发工具阿里云怎么做网站