随笔分类 -  01. 网络通信技术与实现

摘要:这个demo的主要功能就是将采集到的摄像头或桌面的视频、以及麦克风或声卡的音频数据推到Nginx-RTMP服务器上,再由Web浏览器去拉流并播放。 阅读全文
posted @ 2020-11-24 16:20 zhuweisky 阅读(4037) 评论(12) 推荐(19) 编辑
摘要:在C/S架构中,通常是使用 UserID 作为唯一标志来标记每一个用户的,也就是说,对于一个指定的UserID,只能有一个客户端在线。如果我们开发的系统要支持同帐号多设备同时登录的场景,即需要像微信一样,在PC端登录的同时,也可以使用同一个帐号登录移动端(iOS或Android),那么,如何才能做到了? 阅读全文
posted @ 2019-09-17 09:12 zhuweisky 阅读(2144) 评论(0) 推荐(2) 编辑
摘要:要服务端同时支持ws与wss并不容易,其难点主要在于:wss通道必须在TCP连接刚建立时(收发消息前)就要先进行SSL加密,否则,后续的通信将无法正常进行。如此一来,当TCP连接刚建立时,服务器就无法具体分辨哪个是ws客户端哪个是wss客户端。那怎么办了? 阅读全文
posted @ 2017-11-17 10:40 zhuweisky 阅读(26341) 评论(0) 推荐(1) 编辑
摘要:如果网络状态不是很好,就经常会在升级到一半的时候,由于升级客户端的掉线而导致升级失败,这个时候,就必须重新开始整个升级过程。即使升级中断的时候,已经完成了99%,也必须重头再来。所以,为OAUS增加断点续传功能是非常必要的。 阅读全文
posted @ 2015-12-29 11:25 zhuweisky 阅读(4434) 评论(10) 推荐(8) 编辑
摘要:自从《自动升级系统的设计与实现(源码)》发布以后,收到了很多使用者的反馈,其中最多的要求就是希望OAUS服务端增加自动检测文件变更的功能,这样每次部署版本升级时,可以节省很多时间,而且可以避免手动修改带来的错误。那么如何实现这样的自动检测的功能了? 阅读全文
posted @ 2015-01-07 18:07 zhuweisky 阅读(10264) 评论(18) 推荐(23) 编辑
摘要:随着HTML5 WebSocket技术的日益成熟与普及,我们可以借助WebSocket来更加方便地打通BS与CS。 阅读全文
posted @ 2014-08-23 11:09 zhuweisky 阅读(31059) 评论(25) 推荐(27) 编辑
摘要:对于PC桌面应用程序而言,自动升级功能往往是必不可少的。而自动升级可以作为一个独立的C/S系统来开发,这样,就可以在不同的桌面应用中进行复用。基于ESFramework的文件传送功能,我实现了一个可直接复用的自动升级系统OAUS,现在将其分享给大家。 阅读全文
posted @ 2014-08-21 15:17 zhuweisky 阅读(18088) 评论(31) 推荐(26) 编辑
摘要:看到很多开发IM系统的朋友都想实现聊天记录存储和查询这一不可或缺的功能,这里我就把自己前段时间为傲瑞通(OrayTalk)开发聊天记录模块的经验分享出来,供需要的朋友参考下。 阅读全文
posted @ 2014-07-16 17:22 zhuweisky 阅读(35368) 评论(9) 推荐(5) 编辑
摘要:基于.NET开发分布式系统,经常用到Remoting技术。在测试驱动开发流行的今天,如果针对分布式系统中的每个Remoting接口的每个方法都要写详细的测试脚本,无疑非常浪费时间。所以,我写了一个能自动测试remoting接口的小工具InterfaceTester,跟大家分享。 阅读全文
posted @ 2014-05-14 11:17 zhuweisky 阅读(4626) 评论(3) 推荐(5) 编辑
摘要:假设,我们一台TCP应用服务器能同时承载一万人同时在线,而同时在线数通常为5万多,那我们就需要部署6台服务器来分担这些负载。再假设,任意的两个客户端都有可能需要互发消息(比如,传送文件),那问题就来了 -- 因为要互发消息的这两个客户端连接的可能是不同的服务器。如何解决这个问题了? 阅读全文
posted @ 2013-10-15 11:24 zhuweisky 阅读(3933) 评论(7) 推荐(8) 编辑
摘要:他们建议我,整一个轻量级的C#通讯组件来满足类似他们这种项目的需求。我觉得这个建议是有道理的,于是,花了几天时间,我将ESFramework的内核抽离出来,经过修改封装后,形成了StriveEngine通讯组件,其最大的特点就是稳定高效、易于使用。 阅读全文
posted @ 2013-09-05 15:22 zhuweisky 阅读(10103) 评论(9) 推荐(8) 编辑
摘要:有朋友建议我整一个轻量级的C#通信组件,于是,花了几天时间,我将ESFramework的内核抽离出来,经过修改封装后,形成了StriveEngineC#通信组件 阅读全文
posted @ 2013-06-17 10:29 zhuweisky 阅读(22674) 评论(19) 推荐(18) 编辑
摘要:在上篇文章中,我们已经找到了最优的模型,即将广播与P2P通道相结合的方案,这样能使服务器的带宽消耗降到最低,最大节省服务器的宽带支出。本文我们将实现这个最优模型。 阅读全文
posted @ 2013-04-27 09:35 zhuweisky 阅读(3975) 评论(2) 推荐(5) 编辑
摘要:当同一个系统的两个客户端A、B相互发送消息给对方时,如果它们之间存在P2P通道,那么消息传送的路径就有两种:直接经P2P通道传送、或者经服务器中转。那么,对于这两条通道,我们该如何选择了? 阅读全文
posted @ 2012-12-06 11:21 zhuweisky 阅读(10646) 评论(1) 推荐(5) 编辑
摘要:所谓“离线文件”,就是当接收者不在线时,发送者先把文件传送给服务端,在服务器上暂时保存,等接收者上线时,服务端再把文件发送给他。本文简洁地描述了实现离线文件功能的主要思路和基本模型。 阅读全文
posted @ 2012-09-13 13:49 zhuweisky 阅读(4918) 评论(3) 推荐(5) 编辑
摘要:ESPlus 是基于网络通信框架ESFramework的增强库。为了更贴近实际应用,加快网络通信系统的开发,ESPlus在ESFramework原生功能的基础上,进行了再次封装,提供了大多数通信系统中经常用到的组件和功能。 阅读全文
posted @ 2012-04-27 11:57 zhuweisky 阅读(2255) 评论(2) 推荐(1) 编辑
摘要:在分布式通信系统中,安全无疑是非常重要的。ESFramework提供了哪些安全保障了? 阅读全文
posted @ 2012-02-08 11:36 zhuweisky 阅读(1229) 评论(0) 推荐(2) 编辑
摘要:分而治之的所依据的最根本原则是面向对象的基本设计理念 -- 高内聚、低耦合。当CustomizeHandler类变得复杂庞大时,我们就需要将这个CustomizeHandler拆分为多个高内聚低耦合的类,分而治之。 阅读全文
posted @ 2011-10-29 16:38 zhuweisky 阅读(2128) 评论(3) 推荐(3) 编辑
摘要:在ESFramework通信框架 4.0 快速上手(13) -- 文件传送,如此简单一文的详细介绍和ESFramework通信框架 4.0 快速上手(14) -- 聊天系统Demo,增加文件传送功能(附源码)一文的Demo中,我们已经尝试了ESFramework通信框架提供的文件传送功能和断点续传特 阅读全文
posted @ 2011-04-29 11:03 zhuweisky 阅读(3100) 评论(5) 推荐(5) 编辑
摘要:在之前版本的Rapid引擎中,是没有提供客户端登陆验证的机制的,如果要验证用户的帐号密码信息,我们只有自己手动通过自定义信息来实现。在2011.04.25发布的新版本中,客户端Rapid引擎,则内置了在初始化时验证用户的帐号密码的功能,这使得登录验证变得更加简单。一.ESPlus.Applicat... 阅读全文
posted @ 2011-04-25 10:01 zhuweisky 阅读(3637) 评论(2) 推荐(3) 编辑