随笔分类 -  06.ESFramework网络通信框架

C#网络通信框架,C#通讯组件
摘要:在使用 Avalonia 实现跨平台聊天软件时,渲染文字表情、图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。那么有简单的实现办法吗?嗯,有的。 阅读全文
posted @ 2023-08-21 15:28 zhuweisky 阅读(1823) 评论(6) 推荐(18) 编辑
摘要:在实现聊天软件时,渲染文字表情图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。那么有简单的实现办法吗?嗯,有的。 阅读全文
posted @ 2023-02-06 14:56 zhuweisky 阅读(4088) 评论(13) 推荐(28) 编辑
摘要:要服务端同时支持ws与wss并不容易,其难点主要在于:wss通道必须在TCP连接刚建立时(收发消息前)就要先进行SSL加密,否则,后续的通信将无法正常进行。如此一来,当TCP连接刚建立时,服务器就无法具体分辨哪个是ws客户端哪个是wss客户端。那怎么办了? 阅读全文
posted @ 2017-11-17 10:40 zhuweisky 阅读(26438) 评论(0) 推荐(1) 编辑
摘要:假设,我们一台TCP应用服务器能同时承载一万人同时在线,而同时在线数通常为5万多,那我们就需要部署6台服务器来分担这些负载。再假设,任意的两个客户端都有可能需要互发消息(比如,传送文件),那问题就来了 -- 因为要互发消息的这两个客户端连接的可能是不同的服务器。如何解决这个问题了? 阅读全文
posted @ 2013-10-15 11:24 zhuweisky 阅读(3944) 评论(7) 推荐(8) 编辑
摘要:ESPlus 是基于网络通信框架ESFramework的增强库。为了更贴近实际应用,加快网络通信系统的开发,ESPlus在ESFramework原生功能的基础上,进行了再次封装,提供了大多数通信系统中经常用到的组件和功能。 阅读全文
posted @ 2012-04-27 11:57 zhuweisky 阅读(2269) 评论(2) 推荐(1) 编辑
摘要:在分布式通信系统中,安全无疑是非常重要的。ESFramework提供了哪些安全保障了? 阅读全文
posted @ 2012-02-08 11:36 zhuweisky 阅读(1236) 评论(0) 推荐(2) 编辑
摘要:在ESFramework通信框架 4.0 快速上手(13) -- 文件传送,如此简单一文的详细介绍和ESFramework通信框架 4.0 快速上手(14) -- 聊天系统Demo,增加文件传送功能(附源码)一文的Demo中,我们已经尝试了ESFramework通信框架提供的文件传送功能和断点续传特 阅读全文
posted @ 2011-04-29 11:03 zhuweisky 阅读(3105) 评论(5) 推荐(5) 编辑
摘要:使用ESPlus.Application.CustomizeInfo.Passive.ICustomizeInfoOutter接口的Send方法,我们已经可以给服务端或其它在线客户端发送自定义信息了,那么,如何得知接收方是否已经收到了我们发出的信息了呢?特别是针对一些非常重要的信息,确认对方已经收到是非常重要的。ICustomizeInfoOutter接口增加了SendCertainly方法来解决这个问题。 阅读全文
posted @ 2011-04-18 16:47 zhuweisky 阅读(3600) 评论(4) 推荐(1) 编辑
摘要:对于最多几千人同时在线的通信应用,通常使用单台服务器就可以支撑。但是,当同时在线的用户数达到几万、几十万、甚至百万的时候,我们就需要很多的服务器来分担负载。但是,依据什么规则和结构来组织这些服务器,并使它们能相互协调合作,是最关键的问题。如果你的通信应用是基于ESFramework通信框架构建的,当 阅读全文
posted @ 2011-03-31 16:25 zhuweisky 阅读(2676) 评论(5) 推荐(5) 编辑
摘要:在ESFramework 4.0 进阶(04)-- 驱动力:通信引擎(下)一文末尾我们已经将通信引擎以及整个消息骨架流程组装起来了,只要通信引擎一接收到消息,框架就会按照规定的流程进行运转。到这里,自然想到一个问题,如何来发送消息了?没有发送,何谈接收,就更不会有后续的驱动整个消息处理的骨架流程了... 阅读全文
posted @ 2011-03-20 11:36 zhuweisky 阅读(2151) 评论(1) 推荐(4) 编辑
摘要:无论我们采用何种通信框架来构建我们的分布式系统,在服务端进行用户管理都是非常重要的一个环节。然而用户管理是否应该隶属于通信框架了?这个并不一定,通常来说,用户管理是与具体应用紧密相关的,应该是由应用解决的部分,因为不同的应用程序对用户管理的需求是不尽相同的。但是,如果我们对大多数应用中的用户管理任务进行分析,我们发现它们都会关注一些最基础的用户管理需求(如用户状态监控)。如果能在通信框架中内置一种简洁的、灵活的、可扩展的用户管理组件,定会为大多数应用程序提供非常多的方便。 阅读全文
posted @ 2011-03-19 16:52 zhuweisky 阅读(2595) 评论(1) 推荐(5) 编辑
摘要:在ESFramework 4.0 进阶(02)-- 核心:消息处理的骨架流程一文中我们详细介绍了ESFramework中消息处理的骨架流程,并且我们已经知道,ESFramework中的所有通信引擎使用的都是这一套骨架流程。ESFramework内置了多种通信引擎以完全支持“客户端/服务端、TCP/... 阅读全文
posted @ 2011-03-18 15:12 zhuweisky 阅读(2640) 评论(1) 推荐(4) 编辑
摘要:在ESFramework 4.0 概述一文中,我们提到ESFramework.dll作为通信框架的核心,定义了消息处理的骨架流程,本文我们来详细剖析这个流程以及该骨架中所涉及的各个组件。ESFramework的骨架流程如下图所示: 一.所有的网络引擎都使用同一消息处理骨架流程 ESFramework... 阅读全文
posted @ 2011-03-17 15:34 zhuweisky 阅读(2875) 评论(5) 推荐(5) 编辑
摘要:在ESFramework框架中基于TCP的服务端引擎(当然也包括Rapid引擎)都采用了这样一条规则:默认情况下,客户端与服务器成功建立TCP连接以后,服务端会从客户端发过来的第一条消息中取出消息头的UserID属性的值,并将其与对应的TCP连接绑定起来。这样,服务端就知道每一个TCP连接所对应... 阅读全文
posted @ 2011-03-15 09:52 zhuweisky 阅读(2507) 评论(1) 推荐(8) 编辑
摘要:在Internet上采用TCP进行通信的系统,都会遇到一个令人头疼的问题,就是“掉线”。而“TCP掉线”这个问题远比我们通常所能想象的要复杂的多 -- 网络拓扑纷繁复杂、而从始节点A到终节点B之间可能要经过N多的交换机、路由器、防火墙等等硬件设备,每个硬件设备的相关设定也不统一,再加上网络中可能出... 阅读全文
posted @ 2011-03-13 12:26 zhuweisky 阅读(3356) 评论(6) 推荐(7) 编辑
摘要:Silverlight已经到4.0版本了,已经相当成熟了,在Silverlight中使用socket与服务器进行通信也是常见的需求,所以,作为.NET平台的通信框架,ESFramework支持Silverlight开发是必须的。 ESFramework.SL 即是ESFramework提供的Si... 阅读全文
posted @ 2011-03-07 17:52 zhuweisky 阅读(2250) 评论(1) 推荐(5) 编辑
摘要:在ESFramework 4.0 快速上手一文中,我们讲述了如何使用Rapid引擎可以快速地上手ESFramework开发,文中介绍了使用ESPlus.Application.CustomizeInfo命名空间下的类可以发送和处理自定义消息,本文我们就通过一个简单的例子来深入讲解如何使用自定义消... 阅读全文
posted @ 2011-03-05 15:30 zhuweisky 阅读(2451) 评论(0) 推荐(4) 编辑
摘要:ESFramework框架(包括ESPlus、ESPlatform)实现时就内置了相对完整的日志功能,几乎所有的异常(Exception)和错误信息都会被记录到日志。通过查看日志记录,我们可以了解到程序在运行的过程中出现了哪些非正常的状况,并且,详细的日志记录可以帮我们迅速定位问题,并解决问题。(关... 阅读全文
posted @ 2011-03-01 15:22 zhuweisky 阅读(2651) 评论(2) 推荐(3) 编辑
摘要:成熟的C#网络通信框架ESFramework,从最初的单纯的C#网络通信框架,历经10年,已经发展为支持包括安卓、IOS、Xamarin等多个平台的跨平台通信框架。 阅读全文
posted @ 2010-08-12 15:54 zhuweisky 阅读(39244) 评论(63) 推荐(35) 编辑
摘要:ESFramework体系的目标之一就是帮助快速构建IM与业务相结合的系统,在我们的业务应用中,经常会遇到类似这样的需求:商家或服务商需要提供一些资料(文档、影片宣传资料等)给他的用户,他希望用户能方便地下载这些资料,另外,用户也可以直接上传自己的文件到服务器供商家检阅。这种功能就像我们常用的FTP... 阅读全文
posted @ 2006-09-15 11:40 zhuweisky 阅读(2452) 评论(0) 推荐(1) 编辑