业务背景:
服务器在公网(WAN),客户端在企业内网(LAN).
问题描述:
Remoting可以执行方法,属性,但无法实现事件的回调.
解决方案:
服务器端远程对象触发事件,并将事件附加到事件发布机上,有事件发布机通过Socket发送到 客户端的事件订阅机.由事件订阅机触发远程对象中介类的对应事件,实现远程对象的回调.
在VS2005,win2003服务器(公网),xp(内网)通过测试,实现远程对象回调.
概述:采取Remoting与Socket相结合的方式.Socket用于实现事件的回调.为了实现的事件的回调需要实现的几个关键步骤,以及结构图
Communication命名空间
CommunicationBase.cs Socket通信基类
CommunicationClient.cs Socket通信客户端
CommunicationClientMachine.cs 客户端Socket通信机
CommunicationCollection.cs 客户端Socket通信器集合
CommunicationServer.cs Socket通信服务器
Delegate.cs Scoket通信事件委托申明
RemotingEventModule命名空间
RemotingDelegate.cs 分布式事件委托
RemotingEventArgs.cs 事件数据包
RemotingInterface.cs 远程对象基类接口
RemotingInvoke.cs 远程对象中介基类
EventMachine命名空间
PublishEventMachine.cs 服务器事件发布机基类
PublishMachine.cs 服务器事件发布机
SubscribeEventMachine.cs 客户端事件接收机基类
SubscribeMachine.cs 客户端事件接收机