0. 背景
上一文客户端websocket(C#)长连接及简易RPC框架设计(一)讲述了客户端websocket(C#)的长连接,以及相关钩子函数的介绍。接下来文本介绍简易RPC框架,设计关系,最后通过一个echo服务来阐述整个由Client-->Server-->Client调用流程。
1. 简易RPC框架组件介绍
在本文中的简易RPC框架包含七个组件:
- WebSocket实例(
WebSocket) - 客户端套接字(
ClientSocket) - 接收消息线程池处理服务(
Notifier) - 事件分发(
Dispatcher) - 消息处理(
Handler) - RPC管理(
RPCManager) - 消息控制(
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.

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

被折叠的 条评论
为什么被折叠?



