Closed snikeguo closed 4 years ago
基于委托的方式的确是比接口来得更简单方便,实现应该问题不大需要整理设计一下。
场景:假定xrpcserver现在有三个客户端a,b,c 与之连接,xrpcserver经过业务逻辑(比如,客户端a ,b login成功), 所以xrpcserver他只想通知客户端a,b 不打算通知客户端c。
var delInstance= xrpcserver.Create<MyDelegateType>();
光从上面这条语句,delInstance 可能就全部通知了链接的客户端 从这个场景上说,delInstance 按道理是和Session相关联的、有联系的,也就是说服务器想通知那些客户端,是由服务器决定的。
var delInstance= xrpcserver.Create<MyDelegateType>(actor,Session s); //s为要通知的客户端,我想,可能是这种的?
大佬,关于服务器这块设计,您有什么想法?
关于双向调用,目前现有的例子,服务端和客户端耦合太高,并且代码有些繁琐,我觉得服务端完全可以把客户端的那部分代码拿过来,类似于这么写: 场景:假定服务器发生了一些事情要通知客户端: 服务器端:
之后,只要想通知客户端,那么就可以这么写delInstance?.Invoke(...) 当然如果客户端不想监听这个事件的话,也没关系,完全自由的。
客户端:
我这种写法也是模仿您现有的写法,不知道这 样能不能实现。大佬,您觉得呢