首页 > 其他分享 >MediatRPC - 基于MediatR和Quic通讯实现的RPC示例,新增Server Stream功能,发布开源地址。

MediatRPC - 基于MediatR和Quic通讯实现的RPC示例,新增Server Stream功能,发布开源地址。

时间:2022-11-23 11:55:53浏览次数:73  
标签:Stream MediatR stream 示例 MediatRPC Server side

大家好,我是失业在家,正在找工作的博主Jerry。今天发布MediatRPC的开源地址:github.com

文档增加了MediatRPC的架构图和架构说明(英文):

On the client side, it establishes a QUIC connection with the server side. The MediatR's standard methods like ''send/publish/createstream'' are implemented to open outbound bidirectional stream used to send and receive MediatR contract messages.
On the server side, it sets up a QuicListener to listen for client connections and accept the inbound stream when the client make the call after connected. It reads the request message from the stream and passes it to the MediatR handlers for processing, Then it writes the response message to the stream after processed.

通过MediatR的CreateSteam方法,我给MediatRPC增加了类似于GRPC的Server Stream功能,完整功能演示如下:

由于MediatR的CreateSteam方法只支持 IAsyncEnumerable<TResponse>,不支持IAsyncEnumerable<TRequest>,也就是说只能实现Server Stream,无法实现Clinet Stream 和 Bidirectional Stream。所以我给MediaR作者提了个Issue, Add support for IAsyncEnumerable<TRequest> · Issue #804 · jbogard/MediatR (github.com)

 

标签:Stream,MediatR,stream,示例,MediatRPC,Server,side
From: https://www.cnblogs.com/xiaozhuang/p/16917811.html

相关文章

  • golang grpc使用示例
    疑问写前面grpc有内部对心跳的处理吗,还是说,双工需要自己作心跳管理,有懂的留言一下。SEO优化grpc如何双工通信?grpc如何从服务端推送消息给客户端?gprc环境如何搭建?grpc......
  • Linux线程同步介绍和示例
     线程同步的概念    线程同步?怎么同步?一起运行?一起停止?我当年听说线程同步这个词的时候,也是一头雾水。    在人们的日常生活中,所说的锁大概有两种:一种是不允......
  • Linux进程间通信的方法和示例
     进程通信的概念    进程数据空间是相互独立的,不能相互访问的。但某些情况下进程之间需要互相通信,来完成系统的某项功能或交换数据。进程通信的场景    1)......
  • Linux信号signal的介绍和示例
     如何让程序在后台运行    在之前的章节中,如果要运行程序,在命令提示行下输入程序名后回车,程序被执行,然后等待程序运行完成。在程序运行的过程中,可以用Ctrl+c中止它......
  • linux多进程介绍和示例
     进程的概念什么是进程?进程这个概念是针对系统而不是针对程序员的,对程序员来说,我们面对的概念是程序。当程序员敲入命令执行一个程序的时候,对系统而言,它将启动一个进程。进......
  • C++语言类的多态介绍和示例
         多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就可能会用到多态。    C++多态就是当调用成员函数时,会根据调用函数......
  • C++语言类的继承与派生介绍和示例
     继承    继承是面向对象程序设计中最重要的一个概念。继承允许我们根据一个类来定义另一个类,达到了代码功能重用效果。    当创建一个类时,如果待创建的类与......
  • C++语言动态内存管理介绍和示例
     C++动态内存    在C++程序中,所有内存需求都是在程序执行之前通过定义所需的变量来确定的。但是可能存在程序的内存需求只能在运行时确定的情况。在这些情况下,程序......
  • C++语言vector容器介绍和示例
         之前我们在声明数组的时候,采用的是datatype array[len]的形式,数组在分配之后,不能调整大小,删除和插入数据时操作十分的繁琐,虽然可以采用链表,但是链表的操作更......
  • C++语言类的详解和示例
     超女选秀的例子我们玩了很久,为了教学的需要,暂时离开美眉们,我将采用实际项目开发的例子。在C语言基础知识中已学习过文件操作,在实际开发中,我会把文件操作封装成一个类,类的......