zoukankan      html  css  js  c++  java
  • ESFramework4.x

    ESFramework4.x

    广播与P2P通道(下) -- 方案实现
    摘要: 在上篇文章中,我们已经找到了最优的模型,即将广播与P2P通道相结合的方案,这样能使服务器的带宽消耗降到最低,最大节省服务器的宽带支出。本文我们将实现这个最优模型。阅读全文

    posted @ 2013-04-27 09:35 zhuweisky 阅读(732) | 评论 (1) 编辑

    广播与P2P通道(上) -- 问题与方案
    摘要: 当客户端需要广播一个消息给同一个组中的其它客户端时,是经过服务器中转?还是经P2P通道传送?服务器带宽的占用如何?最优的方案是什么?阅读全文

    posted @ 2013-04-25 20:19 zhuweisky 阅读(655) | 评论 (3) 编辑

    P2P直连?经服务器中转?
    摘要: 当同一个系统的两个客户端A、B相互发送消息给对方时,如果它们之间存在P2P通道,那么消息传送的路径就有两种:直接经P2P通道传送、或者经服务器中转。那么,对于这两条通道,我们该如何选择了?阅读全文

    posted @ 2012-12-06 11:21 zhuweisky 阅读(1552) | 评论 (1) 编辑

    ESPlus 网络通信应用开发利器!
    摘要: ESPlus 是基于网络通信框架ESFramework的增强库。为了更贴近实际应用,加快网络通信系统的开发,ESPlus在ESFramework原生功能的基础上,进行了再次封装,提供了大多数通信系统中经常用到的组件和功能。阅读全文

    posted @ 2012-04-27 11:57 zhuweisky 阅读(776) | 评论 (2) 编辑

    ESFramework 安全机制
    摘要: 在分布式通信系统中,安全无疑是非常重要的。ESFramework提供了哪些安全保障了?阅读全文

    posted @ 2012-02-08 11:36 zhuweisky 阅读(339) | 评论 (0) 编辑

    ESFramework 使用技巧 -- 信息处理,分而治之
    摘要: 分而治之的所依据的最根本原则是面向对象的基本设计理念 -- 高内聚、低耦合。当CustomizeHandler类变得复杂庞大时,我们就需要将这个CustomizeHandler拆分为多个高内聚低耦合的类,分而治之。阅读全文

    posted @ 2011-10-29 16:38 zhuweisky 阅读(1414) | 评论 (3) 编辑

    ESFramework 4.0 进阶(12)-- 文件断点续传原理与实现
    摘要: 在ESFramework 4.0 快速上手(13) -- 文件传送,如此简单一文的详细介绍和ESFramework 4.0 快速上手(14) -- 聊天系统Demo,增加文件传送功能(附源码)一文的Demo中,我们已经尝试了ESFramework提供的文件传送功能和断点续传特性。支持断点续传是非常有意义的,比如当我们使用了1个小时的时间上传或下载一个大文件到99%的时候,网络突然断一下,就要全部重头再来,这实在是不能忍受的。现在,我们就解释一下ESFramework中文件断点续传的实现原理。1.文件断点续传的功能由接收方管理。2.在每次文件接收中断的时候,会创建一个等待续传的项目对象,使用R.阅读全文

    posted @ 2011-04-29 11:03 zhuweisky 阅读(1986) | 评论 (5) 编辑

    ESFramework 4.0 快速上手(15) -- 客户端登录验证
    摘要: 在之前版本的Rapid引擎中,是没有提供客户端登陆验证的机制的,如果要验证用户的帐号密码信息,我们只有自己手动通过自定义信息来实现。在2011.04.25发布的新版本中,客户端Rapid引擎,则内置了在初始化时验证用户的帐号密码的功能,这使得登录验证变得更加简单。一.ESPlus.Application.Basic 空间的支持 为了实现验证用户账号密码的功能,ESPlus.Application.Basic 命名空间增加了几个基础设施。(1)ESPlus.Application.Basic.Passive.IBasicOutter 增加了Logon方法: ///<summary>/阅读全文

    posted @ 2011-04-25 10:01 zhuweisky 阅读(2457) | 评论 (2) 编辑

    ESFramework 4.0 快速上手(14) -- 聊天系统Demo,增加文件传送功能(附源码)
    摘要: 本文我们将介绍在ESFramework 4.0 快速上手(08) -- 入门Demo,一个简单的IM系统(附源码)的基础上,增加文件传送的功能。如果不了解如何使用ESFramework提供的文件传送功能,可以先看看ESFramework 4.0 快速上手(13) -- 文件传送,如此简单一文的详细介绍。 本Demo可演示以下与文件传送相关的特性:(1)发送方请求发送文件,接收方可以同意或拒绝接收文件。(2)文件传送的过程中,收发的任何一方都可以通过事件了解文件传送的实时进度。(3)文件传送的过程中,收发的任何一方都可以中断文件的传送。(4)文件传送的过程中,收发的任何一方掉线,都将导致文件传.阅读全文

    posted @ 2011-04-21 09:05 zhuweisky 阅读(3277) | 评论 (14) 编辑

    ESFramework 4.0 快速上手(13) -- 文件传送,如此简单
    摘要: 在所有的通信系统中,文件传送是最常见也是最重要的功能之一,ESFramework对文件传送的强大支持也是其亮点之一,使用ESFramework可以非常轻松地实现与文件传送相关的所有需求。ESPlus.Application.FileTransfering命名空间完整地解决了通信中与文件收发相关的问题,可以支持客户端与客户端之间的文件对传、上传文件到服务器以及从服务器下载文件,并且可以监控每个文件传送的实时状态、且内置了文件续传等功能。一.ESPlus的文件传送流程 ESPlus定义了文件传送的标准流程,可以用下图表示: (1)由发送方发起传送文件的请求。(2)接收方回复同意或者拒绝接收文件。.阅读全文

    posted @ 2011-04-20 09:10 zhuweisky 阅读(2505) | 评论 (4) 编辑

    ESFramework 4.0 进阶(11)-- 好友与组
    摘要: 大部分分布式通信系统中,都会涉及到客户端之间相互通信、以及需要将客户端进行分组的功能,或者是类似这方面的需求。ESFramework对这一常见的任务内置了强大的支持,包括从客户端到服务端、一直到Platform的群集。在设计时,我们就考虑到了如何对常见的好友通信与组广播通信进行最大的支持,以期让ESFramework的使用者非常容易的就能够使用这些功能。 在ESFramework中,好友与组的成员并不仅仅是指用户(某人),而是指所有运行的客户端实例。只要两个客户端实例之间需要频繁相互通信,那么它们就可以建立好友关系(friend)。如果需要在某些特定的客户端实例间进行广播通信,那么这些实例就.阅读全文

    posted @ 2011-04-19 10:39 zhuweisky 阅读(1612) | 评论 (2) 编辑

    ESFramework 4.0 快速上手(12) -- 使用ACK机制发送自定义信息
    摘要: 使用ESPlus.Application.CustomizeInfo.Passive.ICustomizeInfoOutter接口的Send方法,我们已经可以给服务端或其它在线客户端发送自定义信息了,那么,如何得知接收方是否已经收到了我们发出的信息了呢?特别是针对一些非常重要的信息,确认对方已经收到是非常重要的。ICustomizeInfoOutter接口增加了SendCertainly方法来解决这个问题。阅读全文

    posted @ 2011-04-18 16:47 zhuweisky 阅读(1479) | 评论 (4) 编辑

    ESFramework 4.0 快速上手(11) -- 使用紧凑的序列化器,数倍提升性能
    摘要: 在分布式通信系统中,网络传递的是二进制流,而内存中是我们基于对象模型构建的各种各样的对象,当我们需要将一个对象通过网络传递给另一个节点时,首先需要将其序列化为字节流,然后通过网络发送给目标节点,目标节点接收后,再反序列化为对象实例。在ESFramework体系中,也是遵循同样的规则。 ESFramework称这些需要经过网络传递的对象称之为协议类(Contract),协议类通常只是一个简单的数据结构封装,用于保存状态的一个哑类(不包含任何方法,从object继承的除外),有点类似于与数据库中表进行映射的贫血Entity。(关于Contract更详细的介绍可以参见ESFramework 4...阅读全文

    posted @ 2011-04-17 19:18 zhuweisky 阅读(1664) | 评论 (8) 编辑

    ESFramework 4.0 版本升级说明(持续更新 2011.04.25)
    摘要: ESFramework 4.0 内核(ESFramework.dll)已经相当成熟,不会轻易修改,而在不断增强中的是ESPlus和ESFramework.SL,所以,如下的一些版本变更几乎都是针对ESPlus和ESFramework.SL的。最新版本以及最新demo和帮助文档请到ESFramework 4.0 概述文末下载。 第01次版本更新更新时间:2011.04.12 最新版本:ESPlus v1.2.1.0 ,ESFramework.SL v1.0.2.0更新列表:(1)ESPlus.Application.Basic.Passive.IBasicOutter 增加了查询用户是否在线..阅读全文

    posted @ 2011-04-15 09:46 zhuweisky 阅读(2661) | 评论 (12) 编辑

    ESFramework 4.0 快速上手(10) -- 监控自定义信息
    摘要: 在ESFramework 4.0 进阶(02)-- 核心:消息处理的骨架流程一文中,我们介绍了通过挂接IMessageSpy到骨架流程,我们就可以监控到所有收发的消息。由于Rapid引擎已经为我们组装好了默认的骨架流程,如果使用Rapid引擎,我们就无法插入自定义的IMessageSpy。不过没关系,使用Rapid引擎的我们同样可以在服务端监控到客户端发出的所有自定义信息。一.深入ICustomizeInfoOutter接口 我们已经非常熟悉ICustomizeInfoOutter接口了,客户端要发送任何自定义的信息,都是通过该接口来进行的。 publicinterfaceICustomiz.阅读全文

    posted @ 2011-04-14 14:48 zhuweisky 阅读(1794) | 评论 (2) 编辑

    ESFramework 4.0 快速上手(09) -- 聊天系统Demo,增加Silverlight客户端(附源码)
    摘要: 在ESFramework 4.0 快速上手 -- 入门Demo,一个简单的IM系统(附源码)一文中,我们介绍了使用ESFramework的Rapid引擎开发的winform聊天程序,本文我们将在之前demo的基础上添加使用ESFramework.SL开发的Silverlight客户端。这样一来,不仅Silverlight客户端之间可以相互通信,Silverlight客户端还可以跟winform客户端进行通信。如果不了解在Silverlight中如何使用ESFramework,可以先看看ESFramework 4.0 快速上手 -- 在Silverlight中使用ESFramework。 Si.阅读全文

    posted @ 2011-04-08 12:38 zhuweisky 阅读(2472) | 评论 (8) 编辑

    ESFramework 4.0 进阶(10)-- 垂直分割群集模型与多通道引擎
    摘要: 在ESFramework 4.0 进阶(09)-- ESPlatform 支持的三种群集模型一文中,我们介绍了ESPlatform支持的三种群集模型 -- 垂直分割模型、水平分割模型、交叉模型。我们看到,在垂直分割模型和交叉模型中,每个客户端都要与多个应用服务器AS进行通信,这就要求客户端与多个AS中的每一个都建立一条通信通道,如此才能保证客户端能获得服务端提供的完整的服务。 在ESPlatform中有一系列基础设施和组件来支持这样的结构,而多通道引擎就是其中的一个关键组件。首先要注意,多通道引擎的说法对客户端才有意义,因为服务端引擎都是多通道的 -- 服务端与每个客户端之间都有一个通道。所.阅读全文

    posted @ 2011-04-06 10:10 zhuweisky 阅读(1153) | 评论 (3) 编辑

    ESFramework 4.0 进阶(09)-- ESPlatform 支持的三种群集模型
    摘要: 对于最多几千人同时在线的通信应用,通常使用单台服务器就可以支撑。但是,当同时在线的用户数达到几万、几十万、甚至百万的时候,我们就需要很多的服务器来分担负载。但是,依据什么规则和结构来组织这些服务器,并使它们能相互协调合作,是最关键的问题。如果你的通信应用是基于ESFramework构建的,当同时在线的用户人数剧增时,就可以非常容易地迁移到ESPlatform,以解决巨大并发的问题。 ESPlatform 旨在协助快速构建大型的基于ESFramework的通信应用。ESPlatform也是通过应用服务器群集(Cluster)来解决巨大并发。ESPlatform支持三种群集模型:垂直分割模型、水.阅读全文

    posted @ 2011-03-31 16:25 zhuweisky 阅读(1767) | 评论 (5) 编辑

    ESFramework 4.0 快速上手(08) -- 入门Demo,一个简单的IM系统(附源码)
    摘要: 本文我们将介绍使用ESFramework的Rapid引擎开发的一个最简单的Demo,该Demo是一个简单的聊天系统,并演示了以下功能:(1)客户端用户上下线时,通知其他在线用户。(2)当客户端与服务端网络断开时,进行自动重连,当网络恢复后,重连成功。(3)所有在线用户之间可以进行文字聊天。(4)消息同步调用。(5)重登陆模式。当同名的用户登陆时,会把前面的用户挤掉。一.服务端 服务端非常简单,只需要实现ESPlus.Application.CustomizeInfo.Server.ICustomizeInfoBusinessHandler接口以处理客户端的同步请求:View Code pub.阅读全文

    posted @ 2011-03-25 11:32 zhuweisky 阅读(3473) | 评论 (10) 编辑

    ESFramework 4.0 有哪些优点?
    摘要: 作为.NET平台上的通信框架,ESFramework有哪些优点了?我们有什么理由要使用ESFramework来开发自己的通信应用?1.高性能 ESFramework底层使用IOCP模型,使得数据收发与处理达到最高性能。当前主流配置的服务器(如至强4核双CPU、4-8G内存)可轻松处理10000个同时在线连接,每秒处理50000个以上的请求。当然,最终能达到的并发,更取决于具体应用的业务逻辑,如果业务逻辑复杂、处理单个请求都对CPU和内存的消耗都比较高,那么就会导致并发数下降,这时也许就要优化我们的业务逻辑代码了、或者使用更多的服务器来分担负载(比如迁移到ESPlatform)。关于ESFra.阅读全文

    posted @ 2011-03-24 09:32 zhuweisky 阅读(3395) | 评论 (15) 编辑

    ESFramework 4.0 进阶(08)-- 挂接P2P通道
    摘要: 最新版本的ESFramework/ESPlus提供了基于TCP和UDP的P2P通道,而无论我们是使用基于TCP的P2P通道,还是使用基于UDP的P2P通道,ESPlus保证所有的P2P通信都是可靠的。这是因为ESPlus在原始UDP的基础上模拟TCP的机制进行了再次封装,以使UDP像TCP一样可靠。在客户端之间需要高频通信的分布式系统中(如IM系统等),可靠的P2P通信将为您节省巨大的带宽和服务器成本。详情请参见:ESFramework 开发手册(04) -- 可靠的P2P以及 ESFramework 使用技巧 -- 部署P2P服务器。 在ESFramework 4.0 进阶(07)-- 消.阅读全文

    posted @ 2011-03-21 15:39 zhuweisky 阅读(1503) | 评论 (0) 编辑

    ESFramework 4.0 进阶(07)-- 消息同步调用
    摘要: 分布式系统的构建一般有两种模式,一是基于消息(如Tcp,http等),一是基于方法调用(如RPC、WebService、Remoting)。深入想一想,它们其实是一回事。如果你了解过.NET的Proxy,那么你会发现,方法调用和消息请求/回复实际上是可以相互转换的,.NET的Proxy的实现,就是在方法调用的堆栈帧和消息之间相互转换的过程。 在ESFramework 4.0 进阶(06)-- 正规消息发送器一文中,我们已经知道了如何发送消息,下面我们来关注一下客户端与服务端进行交互时最常见的一种情况:客户端发送一个请求给服务端,服务端处理后,返回回复消息。比如像这样,服务端提供一个加法运算的.阅读全文

    posted @ 2011-03-21 11:37 zhuweisky 阅读(1638) | 评论 (6) 编辑

    ESFramework 4.0 进阶(06)-- 正规消息发送器
    摘要: 在ESFramework 4.0 进阶(04)-- 驱动力:通信引擎(下)一文末尾我们已经将通信引擎以及整个消息骨架流程组装起来了,只要通信引擎一接收到消息,框架就会按照规定的流程进行运转。到这里,自然想到一个问题,如何来发送消息了?没有发送,何谈接收,就更不会有后续的驱动整个消息处理的骨架流程了。一.发送消息时遇到的问题 在ESFramework 4.0 进阶(03)-- 驱动力:通信引擎(上)一文中学习引擎接口时,我们知道,各种引擎都提供了发送消息的方法,向服务端引擎IServerEngine的SendMessageToClient方法和PostMessageToClient方法,以及客.阅读全文

    posted @ 2011-03-20 11:36 zhuweisky 阅读(1620) | 评论 (1) 编辑

    ESFramework 4.0 进阶(05)-- 在线用户管理
    摘要: 无论我们采用何种通信框架来构建我们的分布式系统,在服务端进行用户管理都是非常重要的一个环节。然而用户管理是否应该隶属于通信框架了?这个并不一定,通常来说,用户管理是与具体应用紧密相关的,应该是由应用解决的部分,因为不同的应用程序对用户管理的需求是不尽相同的。但是,如果我们对大多数应用中的用户管理任务进行分析,我们发现它们都会关注一些最基础的用户管理需求(如用户状态监控)。如果能在通信框架中内置一种简洁的、灵活的、可扩展的用户管理组件,定会为大多数应用程序提供非常多的方便。阅读全文

    posted @ 2011-03-19 16:52 zhuweisky 阅读(1597) | 评论 (1) 编辑

    ESFramework 4.0 进阶(04)-- 驱动力:通信引擎(下)
    摘要: 在ESFramework 4.0 进阶(03)-- 驱动力:通信引擎(上)一文中,我们对ESFramework提供的每一个通信引擎的接口都做了详细了说明,这篇文章我们将继续探讨这些接口的实现类 -- 真正工作的通信引擎类。ESFramework提供了具体的5个通信引擎类覆盖了TCP/UDP、客户端/服务端、 二进制协议/文本协议组合的2x2x2=8种模式。阅读全文

    posted @ 2011-03-19 12:27 zhuweisky 阅读(1278) | 评论 (2) 编辑

    ESFramework 4.0 进阶(03)-- 驱动力:通信引擎(上)
    摘要: 在ESFramework 4.0 进阶(02)-- 核心:消息处理的骨架流程一文中我们详细介绍了ESFramework中消息处理的骨架流程,并且我们已经知道,ESFramework中的所有通信引擎使用的都是这一套骨架流程。ESFramework内置了多种通信引擎以完全支持“客户端/服务端、TCP/UDP、文本协议/二进制协议”这些特性的组合。本文就来剖析ESFramework中的各种通信引擎。一.通信引擎接口继承关系图 INetEngine是所有网络引擎的基础接口,接下来再派生出服务端引擎接口和客户端引擎接口,然后分别派生出服务端TCP引擎接口和客户端TCP引擎接口;另外,UDP引擎接口分别.阅读全文

    posted @ 2011-03-18 15:12 zhuweisky 阅读(1649) | 评论 (1) 编辑

    ESFramework 4.0 进阶(02)-- 核心:消息处理的骨架流程
    摘要: 在ESFramework 4.0 概述一文中,我们提到ESFramework.dll作为通信框架的核心,定义了消息处理的骨架流程,本文我们来详细剖析这个流程以及该骨架中所涉及的各个组件。ESFramework的骨架流程如下图所示: 一.所有的网络引擎都使用同一消息处理骨架流程 ESFramework支持TCP/UDP、二进制协议/文本协议、服务端/客户端组合而成的2x2x2=8种引擎,无论是哪一种引擎,都实现了INetEngine接口,也都使用上图所示的消息处理骨架流程来处理所接收到的所有消息。 所以,只要掌握了这一消息处理的骨架流程,就掌握了ESFramework的核心机密。也只有掌握了该骨阅读全文

    posted @ 2011-03-17 15:34 zhuweisky 阅读(1933) | 评论 (5) 编辑

    ESFramework 4.0 快速上手(07) -- 重登陆模式
    摘要: 在ESFramework框架中基于TCP的服务端引擎(当然也包括Rapid引擎)都采用了这样一条规则:默认情况下,客户端与服务器成功建立TCP连接以后,服务端会从客户端发过来的第一条消息中取出消息头的UserID属性的值,并将其与对应的TCP连接绑定起来。这样,服务端就知道每一个TCP连接所对应的用户UserID,而当我们要求服务端向某个客户端发送消息时,服务端就知道通过哪个TCP连接进行发送了。TCP连接与UserID是一一对应的,一个TCP连接只能对应一个UserID,同样的,一个UserID最多存在一个TCP连接。一.两种重登陆模式 在现实中,经常出现这样的情况:比如我们用的QQ,当我.阅读全文

    posted @ 2011-03-15 09:52 zhuweisky 阅读(1830) | 评论 (1) 编辑

    ESFramework 4.0 快速上手(07) -- 玩的就是“心跳”
    摘要: 在Internet上采用TCP进行通信的系统,都会遇到一个令人头疼的问题,就是“掉线”。而“TCP掉线”这个问题远比我们通常所能想象的要复杂的多 -- 网络拓扑纷繁复杂、而从始节点A到终节点B之间可能要经过N多的交换机、路由器、防火墙等等硬件设备,每个硬件设备的相关设定也不统一,再加上网络中可能出现的拥塞、延迟等,使得我们在编程时,处理掉线也非常棘手。一.从程序的角度看待TCP掉线 TCP掉线的原因可能多种多样、不一而足,比如,客人的电脑突然断电、OS崩溃、路由器重启、网线接触不良、因为P2P下载软件而导致网络资源短缺、Internet网络的不稳定等等,但是从程序的角度来说,我们可以总结为两.阅读全文

    posted @ 2011-03-13 12:26 zhuweisky 阅读(2398) | 评论 (5) 编辑

    ESFramework 4.0 快速上手(06) -- Rapid引擎(续)
    摘要: 《ESFramework 4.0 快速上手》系列介绍的都是如何使用Rapid引擎(快速引擎) -- RapidServerEngine 和 RapidPassiveEngine。其实,大家可以将这两个引擎看作是两个壳,内部包装的才是真正的ESFramework的网络引擎, ESFramework支持很多种网络引擎(客户端/服务端、二进制协议/文本协议、TCP/UDP),而RapidServerEngine和RapidPassiveEngine采用的是基于TCP和二进制协议的服务端引擎和客户端引擎。这两个壳存在的目的,就是使大家不用了解ESFramework内部机制,就可以非常快速的上手ESF.阅读全文

    posted @ 2011-03-08 16:40 zhuweisky 阅读(1754) | 评论 (1) 编辑

    ESFramework 4.0 快速上手(05) -- 在Silverlight中使用ESFramework
    摘要: Silverlight已经到4.0版本了,已经相当成熟了,在Silverlight中使用socket与服务器进行通信也是常见的需求,所以,作为.NET平台的通信框架,ESFramework支持Silverlight开发是必须的。 ESFramework.SL 即是ESFramework提供的Silverlight开发组件,其完整实现了基于流的TCP客户端网络引擎,并与其非Silverlight的接口完全一致(即是ESFramework 4.0 快速上手文中提到的IRapidPassiveEngine)。也就是说,我们完全可以将ESFramework 4.0 快速上手一文中提到的客户端引擎替换.阅读全文

    posted @ 2011-03-07 17:52 zhuweisky 阅读(1647) | 评论 (1) 编辑

    ESFramework 4.0 快速上手(04) -- 如何使用自定义消息?
    摘要: 在ESFramework 4.0 快速上手一文中,我们讲述了如何使用Rapid引擎可以快速地上手ESFramework开发,文中介绍了使用ESPlus.Application.CustomizeInfo命名空间下的类可以发送和处理自定义消息,本文我们就通过一个简单的例子来深入讲解如何使用自定义消息。 例子的场景很简单:假设客户端登陆到服务器之后,要求请求加入某个组,服务端收到该请求后,处理该请求,并给客户端相应的回复 -- 是否加入成功,客户端收到回复后,即可作出相应的处理。一.定义消息类型和消息协议Contract 这个场景涉及到两种类型的消息:请求加入组(客户端发给服务器),加入组的结果.阅读全文

    posted @ 2011-03-05 15:30 zhuweisky 阅读(1770) | 评论 (0) 编辑

    ESFramework 4.0 快速上手(03) -- 异常日志
    摘要: ESFramework框架(包括ESPlus、ESPlatform)实现时就内置了相对完整的日志功能,几乎所有的异常(Exception)和错误信息都会被记录到日志。通过查看日志记录,我们可以了解到程序在运行的过程中出现了哪些非正常的状况,并且,详细的日志记录可以帮我们迅速定位问题,并解决问题。(关于我对日志记录的更多认识,可以参看我的博文我的架构经验小结(五)-- 日志记录 )一.IAgileLogger接口 首先,ESFramework框架使用ESBasic.Loggers.IAgileLogger接口来记录日志: publicinterfaceIAgileLogger{voidLog(E阅读全文

    posted @ 2011-03-01 15:22 zhuweisky 阅读(1874) | 评论 (2) 编辑

    ESFramework 4.0 快速上手(02) -- 离线消息如何实现?
    摘要: 在ESFramework 4.0 快速上手一文中,主要介绍了如何使用ESPlus.Rapid命名空间中的引擎来快速地构建基于TCP的网络通信系统,即使是使用ESPlus.Rapid来进行ESFramework快速开发,也还有很多可以介绍的内容,于是,我想再多写几篇文章来说明现实通信系统中的一些常见需求如何使用ESFramework快速实现。本文是为第一篇,介绍离线消息的原理和实现。一.如何截获离线消息 阅读了ESFramework 4.0 快速上手朋友都知道,一个在线用户给另一个用户发送文本信息或二进制信息采用的是ESPlus.Application.CustomizeInfo.Passiv.阅读全文

    posted @ 2011-02-25 11:39 zhuweisky 阅读(2157) | 评论 (11) 编辑

    ESFramework 4.0 进阶(01)-- 消息
    摘要: 需要交互的分布式系统之间通过消息来传递有意义的信息。消息是通信框架的核心。离开了消息,再谈通信框架就没有任何意义,所以,消息是ESFramework中一个最核心的概念。一. 消息的类别 在具体的应用中,我们需要对消息的类别进行定义,这有助于我们分析和讨论问题。消息大致可以分为4个类别:请求消息、回复消息、报告、通知、P2P消息。 在Client/Server模式中,出现最多的便是请求消息和回复消息。这两种类别的消息非常容易理解。 报告指的是Client/Server模式中客户端发送给服务端的消息。但这种消息不需要服务端的回复。比如,客户端可能需要将自己的当前状态上报给服务端,这就可以通过“报告阅读全文

    posted @ 2010-12-24 10:14 zhuweisky 阅读(1517) | 评论 (6) 编辑

    ESFramework 4.0 性能测试
    摘要: 本实验用于测试ESFramework服务端引擎的性能,测试程序使用ESFramework 4.0版本。一.准备工作测试的机器总共有3台,都是普通的PC,一台作为服务器,两台作为客户端。作为服务器是PC配置如下:操作系统:Windows Server 2003 Enterprise Edition SP2CPU:Pentium Dual-Core CPU E5400 @ 2.70GHz内存:2G二.测试策略 本实验所采用的策略是这样的:(1)每个客户端实例首先与服务器建立N个TCP连接,然后依次在每个TCP连接上发送一个36字节的消息。遍历一次完毕后,等待(Sleep)M毫秒,再进行下一轮遍历发阅读全文

    posted @ 2010-09-11 12:51 zhuweisky 阅读(3424) | 评论 (34) 编辑

    ESFramework 4.0 快速上手(01) -- Rapid引擎
    摘要: (在阅读该文之前,请先阅读ESFramework 4.0 概述 ,会对本文的理解更有帮助。)ESFramework/ESPlatform 4.0 的终极目标是为百万级的用户同时在线提供支持,因为强大,所以使用也较为复杂,配置也较多。但是如果我们的应用只是一个中小型的通信应用(同时在线5000人以下),直接使用ESPlatform就有点显得杀鸡用牛刀了。ESPlus.Rapid提供了一种快速的方式,来解决类似中小型的通信应用,以最简洁的方式来使用ESFramework。 使用ESPlus.Rapid来构建你的ESFramework通信程序,你只需要了解两个引擎(服务端引擎和客户端引擎)和几个组件阅读全文

    posted @ 2010-09-11 11:49 zhuweisky 阅读(4650) | 评论 (16) 编辑

    ESFramework 通信框架 -- 概述
    摘要: 支持巨大并发的通信程序的开发是非常复杂的,其涉及到很多方面的专业知识,像TCP、UDP协议、Socket开发、多线程编程、线程池、并发架构、分布式架构、完成端口(IOCP)模型、异步编程模型、设计模式等等。 而现在,所有这些经验的结晶都浓缩在ESFramework框架中。ESFramework,是一套可高度复用的、灵活的、单纯而又强大的.NET通信框架,全部采用C#编写。ESFramework内置了对Tcp和Udp的支持,并且支持文本协议和流协议,提供了多种网络引擎供服务端和客户端开发人员轻松使用。采用ESFramework框架,使得您不需要了解Socket、不用再关心底层与通信相关的一切琐碎的事情,就可以在一个更高的层次上更快地开发属于您的高效稳定的网络通信应用。像IM系统、视频会议系统、数据采集系统、MMORPG、WebGame、在线休闲游戏等,凡是需要分布式通信的系统都可以使用ESFramework框架。阅读全文

    posted @ 2010-08-12 15:54 zhuweisky 阅读(14472) | 评论 (59) 编辑

  • 相关阅读:
    AVL树的java实现
    request和response的setCharacterEncoding()方法
    几种常用数据库连接池的使用
    String类、static关键字、Arrays类、Math类
    QT学习笔记(day02)
    QT学习笔记(day01)
    STL中栈和链表的不同实现方式的速度对比
    C++泛化双端队列
    C++泛化队列
    C++泛化栈
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3047664.html
Copyright © 2011-2022 走看看