客户端websocket(c#)长连接及简易rpc框架设计(二)

本文深入探讨了一种简易的C# WebSocket RPC框架,包括七个关键组件及其相互关系,通过Echo服务示例详细阐述了RPC调用流程。自定义通信协议简单,支持基础类型传递,客户端注册回调函数并连接服务器,实现服务端调用的响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 背景

上一文客户端websocket(C#)长连接及简易RPC框架设计(一)讲述了客户端websocket(C#)的长连接,以及相关钩子函数的介绍。接下来文本介绍简易RPC框架,设计关系,最后通过一个echo服务来阐述整个由Client-->Server-->Client调用流程。

1. 简易RPC框架组件介绍

在本文中的简易RPC框架包含七个组件:

  1. WebSocket实例(WebSocket
  2. 客户端套接字(ClientSocket
  3. 接收消息线程池处理服务(Notifier)
  4. 事件分发(Dispatcher)
  5. 消息处理(Handler
  6. RPC管理(RPCManager)
  7. 消息控制(MessageController

这七个组件有的相互引接收,发送句柄,有的引用组件本身,他们紧密配合,实现了简单的从远程网络中发送和接收数据消息的机制。客户端程序需要配置WebSocket实例的参数,然后新建消息控制MessageController实例,然后调用该实例的服务端调用客户端接口注册和客户端调用服务端接口:

//服务端调用客户端接口注册API
public void RegisterHandlers(string funName, Function fun)

//客户端调用服务端API
public void CallServerMethod(string[] rpcSeg)

a). 七个组件的UML图

以上的七个组件相互关系如下图1 所示:

这里写图片描述
图1. 七个组件相互关系图

其中:

实黑箭头线表示组件所有对方组件作为属性,而实红箭头线表示本组件引用对方的组件的属性,红色双向表示组件间各自引用对方某个属性。

WebSocket类是websocket-sharp.dll提供的,它的介绍可以参考 客户端websocket(C#)长连接(一)

ClientSocket是对WebSocket的四个钩子函数的实现,可以参考 客户端websocket(C#)长连接(一)的叙述,它的主要属性如下图所示:

这里写图片描述
图2.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值