(OA自动化)AgileEASNETSOA中间件平台NetSocket通信框架-完整

上传人:管****问 文档编号:119374452 上传时间:2020-01-13 格式:DOC 页数:27 大小:545.57KB
返回 下载 相关 举报
(OA自动化)AgileEASNETSOA中间件平台NetSocket通信框架-完整_第1页
第1页 / 共27页
(OA自动化)AgileEASNETSOA中间件平台NetSocket通信框架-完整_第2页
第2页 / 共27页
(OA自动化)AgileEASNETSOA中间件平台NetSocket通信框架-完整_第3页
第3页 / 共27页
(OA自动化)AgileEASNETSOA中间件平台NetSocket通信框架-完整_第4页
第4页 / 共27页
(OA自动化)AgileEASNETSOA中间件平台NetSocket通信框架-完整_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《(OA自动化)AgileEASNETSOA中间件平台NetSocket通信框架-完整》由会员分享,可在线阅读,更多相关《(OA自动化)AgileEASNETSOA中间件平台NetSocket通信框架-完整(27页珍藏版)》请在金锄头文库上搜索。

1、一、AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍一文之中我们对AgileEAS.NET SOA中间Socket/Tcp框架进行了总体的介绍,我们知道AgileEAS.NET SOA中间件Socket/Tcp框架是一套Socket通信的消息中间件:二、多人在线聊天室系统 在文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答给大家实例介绍了有关于AgileEAS.NET SOA 中间件Socket通信框架的简单应用之后,

2、我们通过文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-完整应用例子-在线聊天室系统-下载配置向大家展示了一个完整成熟的.NET Socket 通信框架的应用案例,一个从在线聊天室系统,通过文章向大家讲解了如何下载和编译安案例源代码、以及如何配置服务端和客户段。 相对于简单的客户端=服务端消息请求与应答的例子而言,在线多人聊天室系统的复杂度都要超过客户端=服务端消息请求例子N多倍,但是限于文章篇幅的原因,我们没有在文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-完整应用例子-在线聊天室系统-下载配置这中为大家介绍这个案例的具体代码

3、。 下面我将为大家介绍这个案例的关键代码及阅读、理解、修改完善所需要注意的地方。三、关于代码编译环境及其他的地些设置 本案例的源代码在下载压缩包的Code目录之中,所有的引用AgileEAS.NET SOA 中间件平台的程序集及客户端、服务端运行所必须的文件都在下载压缩包的Publish目录之中,所有项目的编译输出路径也都是在Publish目录,也就是所有项目不管是在Debug编译环境还是在Release编译环境都是输出在Publish目录之中,有关具体的设置请看下图:四、解决方案之中的项目说明 ChatRoom解决方案之是共有ChatRoom.Entities、ChatRoom.BLL.Co

4、ntracts、ChatRoom.BLL.Host、ChatRoom.Messages、ChatRoom.Socket、ChatingRoom.MainClient、ChatingRoom.UserManage共七个项目,其中: ChatRoom.Entities:是聊天室注册用启的数据存储实体,其中只包括一个实体User,http:/ 即注册用户信息。 ChatRoom.BLL.Contracts:为用户管理、登录验证、密码找回修改等功能的分布式服务定义契约,其中仅包括一个服务契约定义IUserService(用户服务)。 ChatRoom.BLL.Host:为ChatRoom.BLL.Co

5、ntracts所定义的服务契约的功能实现。 ChatRoom.Messages:服务端与客户端通信消息的定义,包括聊天消息、用户登录请求、登录结果、在线用户清单消息、用户上下线状态通知消息。 ChatRoom.Socket:为服务端的业务代码、包括AgileEAS.NET SOA服务进程的SocketService插件以及服务端收到客户端各种消息的消息处理器代码。 ChatingRoom.MainClient:为客户端代码、包括客户段界面以及客户端收到通信消息的消息处理器代码。五、关于SOA服务SocketService插件 如果对比AgileEAS.NET SOA 中间件平台.Net Soc

6、ket通信框架-简单例子-实现简单的服务端客户端消息应答,细心的朋友一定会发现本案例中没有了类似Socket.Demo.Server功能的项目,而是多了ChatRoom.Socket项目。 关于这个问题就涉及到了AgileEAS.NET SOA 中间件平台的SOA服务实例及Socket框架的设计,在SOA服务实例本身被设计成为了一个可以运行WCF、WS、Socket等各吃点通信及其他应用服务的运行容器,那么我们的Socket服务端也可以在此服务实例之中运行,同时在我们的AgileEAS.NET SOA中间件平台的微内核程序集EAS.MicroKernel.dll之中定义了SocketServi

7、ce插件的实现标准: 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: using EAS.Distributed; 6: 7: namespace EAS.Sockets 8: 9: / 10: / SocketService服务接口定义。 11: / 12: / 13: / 一个Socket服务器可以承载多种/个Socket服务,一个Socket服务处理一种业务。 14: / 如IM SocketService 处理IM相关的即时通讯业务,

8、而WF SocketService 处理工作流相关的服务,这两种Socket服务可以同时运行在一个Socket服务器之中。 15: / 16: public interface ISocketService:IAppService 17: 18: / 19: / 使用ServerEngine初始化SocketService。 20: / 21: / Socket服务器对象。 22: void Initialize(ISocketServerBase socketServer); 23: 24: ISocketService接口中定义了一个初始化方法:void Initialize(ISocke

9、tServerBase socketServer),用于SOA服务实例完成对ISocketService实例的初始化,其中传入参数为一个ISocketServerBase对象,其本质的含义为SOA服务实例调用ISocketService实例对象把SOA服务实例之中的SocketServer对象做为参数传入,那么我们就可以在ISocketService对象之中针对SocketServer做一些初始化工作,其中最重要的工作是,挂载与之相关的消息对象器IMessageHandler。 ChatRoom.Socket项目之中包括了一个ISocketService的实现ChatRoom.Socket.M

10、essageService 1: using EAS.Loggers; 2: using EAS.Sockets; 3: using System; 4: using System.Collections.Generic; 5: using System.Linq; 6: using System.Text; 7: http:/ 8: namespace ChatRoom.Socket 9: 10: / 11: / 聊天室消息服务,由EAS.SOA.Server.Exe引擎的Socket初始化程序。 12: / 13: public class MessageService : ISocket

11、Service 14: 15: #region ISocketService 成员 16: 17: public void Initialize(EAS.Sockets.ISocketServerBase socketServer) 18: 19: try 20: 21: socketServer.AddHander(new ChatMessageHandler(); 22: socketServer.AddHander(new LoginMessageHandler(); 23: ChatRoomContext.Instance.SocketServer = socketServer; 24

12、: 25: catch (System.Exception exc) 26: 27: Logger.Error(exc); 28: 29: 30: socketServer.SessionStarted += socketServer_SessionStarted; 31: socketServer.SessionAbandoned += socketServer_SessionAbandoned; 32: 33: 34: void socketServer_SessionStarted(object sender, NetSessionEventArgs e) 35: 36: Logger.

13、Info(string.Format(Session:0 Started, e.Session.SessionID); 37: 38: 39: void socketServer_SessionAbandoned(object sender, NetSessionEventArgs e) 40: 41: Logger.Info(string.Format(Session:0 Abandoned, e.Session.SessionID); 42: 43: 44: /void socketServer_MessagerReceived(object sender, EAS.Sockets.MessageEventArgs e) 45: / 46: / Logger.Info(string.Format(MessagerReceived:0, e.Message.ToString(); 47: / 48: 49:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号