.net 平台下,实现通讯处理有很多方法(见下表),各有利弊: 序号 实现方式 特点 1 WCF 优点:封装好,方便.缺点:难学,不跨平台 2 RocketMQ,SuperSocket等中间件 优点:轻便 缺点:用户群体少 3 直接使用winsocket 优点:全部在自己掌控之下,协议灵活.缺点:实现时间长,易于出错. 本人开发socket通讯多年了,一直干着"重复发明轮子"工作,这种工作方式效率低下,容易出错! 重复的事情做多了,也会出现"灵光"!何不自己设计一套…
设计思路 利用YYCache来进行操作,实质操作分为了内存缓存操作(YYMemoryCache)和硬盘缓存操作(YYDiskCache).内存缓存设计一般是在内存中开辟一个空间用以保存请求的数据(一般使用字典操作).硬盘缓存设计即是将文件保存至本地,这种保存分为小文件保存和大文件保存,对于小文件保存使用数据库操作性能效率相对较高,对于大文件则使用直接存放.YYDiskCache为线程安全的类,其操作是基于YYKVStorage(线程不安全的类)的操作.以下为大致源码分析 主类YYCache 必须…
  (最新版本:V6.2,2019.01.03 .Xamarin移动端版本已经推出,包括 Android 和 iOS) GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网,包括客户端(PC客户端.android移动端).服务端.数据库.从2013年最初的GG1.0开放源码以来,到后来陆续增加了网盘功能.远程协助功能.离线文件功能.群聊功能.语音聊天功能.视频聊天功能.以及视讯录制功能.和增加了数据库.我想写一个类似汇总的文章,通过这篇文章,大家可以了解到GGTalk开…
原文地址:http://www.cnblogs.com/justnow/p/3382160.html (最新版本:V6.0,2017.12.11 .即将推出Xamarin移动端版本,包括 Android 和 iOS) GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网,包括客户端(PC客户端.android移动端).服务端.数据库.从2013年最初的GG1.0开放源码以来,到后来陆续增加了网盘功能.远程协助功能.离线文件功能.群聊功能.语音聊天功能.视频聊天功能.以及…
一.前言 上一篇大概说了下abp通用树形模块如何使用,本篇主要分析下设计思路. 日常开发中会用到很多树状结构的数据,比如:产品的多级分类.省市区县,大多数系统也会用到类似“通用字典/数据字典”的功能,为系统各个地方提下拉框选择的数据源.abp提供了一个模块化系统,只要按它的约定就可以实现一个通用的树形数据的模块,这样公司的多个系统都可以使用,也可以用类似nuget的方式提供给别人使用. 先列举下它的功能 通过nuget方便安装和升级 配置简单 默认已经提供“通用字典”功能 实体.管理器.应用服务…
关于Repository模式,在这篇文章中有介绍,Entity Framework返回IEnumerable还是IQueryable? 这篇文章介绍的是使用Entity Framework实现的Repositoy模式设计,欢迎各位拍砖. 阅读目录: 一.实现的思路和结构图 二.Repository设计具体的实现代码 三.Repository设计的具体的使用 四.总结 一,实现的思路和结构图 总结一下,Repository在实际使用中,有下面三种特点: Repository的共同性 有一些公共的方…
CopyOnWriteArrayList实现了List接口,RandomAccess,Cloneable,Serializable接口. CopyOnWriteArrayList特性 1.线程安全,在多线程环境下作为共享变量可以放心使用,无需加锁. 2.通过加锁和volatile保证安全 3.每次对数组进行增删改操作都会复制原先元素到新的数组中,在新的数组上进行操作,最后再赋值回去. 他底层使用的数据结构也是数组,对数组中元素的操作都会经历,加锁,拷贝原数组到新数组中,对新数组进行增删改,然后赋…
你应该知道的.net平台下socket异步通讯(代码实例) 1,首先添加两个windows窗体项目,一个作为服务端server,一个作为客户端Client 2,然后添加服务端代码,添加命名空间,界面上添加TextBox控件 using System.Net; using System.Net.Sockets; 3,FormLoad方法添加代码 private void Form1_Load(object sender, EventArgs e) { IPEndPoint epServer = n…
Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才是检索结果.首先,电商的搜索引擎并没有爬虫系统,因为所有的数据都是结构化的,一般都是微软的数据库或者 Oracle 的数据库,所以不用像百度一样用「爬虫」去不断去别的网站找内容,当然,电商其实也有自己的「爬虫」系统,一般都是抓取友商的价格,再对自己进行调整. 第二点,就是电商搜索引擎的过滤功能其实比…
在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Header)和消息体(Body)构成的,消息头的长度固定,而且,通过解析消息头,可以知道消息体的长度.如此,我们便可以从网络流中解析出一个个完整的二进制消息. 两种类型的协议格式各有优劣:文本协议直观.容易理解,但是在文本消息中很难嵌入二进制数据,比如嵌入一张图片:而二进制协议的优缺点刚刚相反. 在 轻量…