坦白讲,我们公司其实没啥技术实力,之所以还能不断接到各种项目,全凭我们老板神通广大!要知道他每次的饭局上可都是些什么人物! 但是项目接下一大把,就凭咱哥儿几个的水平,想要独立自主.保质保量保期地一个个做出来,那也是有点难以置信.之前咱也跟老板反映过这个困难,建议他再召两个高手过来.不过领导虽然书读的不多,有一句古训倒是背得特别熟——“君子生非异也,善假于物也”.所以咱们公司一直奉行拿来主义. 园子里的这个GGTalk——C#开源即时通讯系统,咱们前前后后用它移花接木做的IM项目也不下三四个了.初…
公司介绍:我们是专业的IM服务提供商!哇呼Chat是一款包含android客户端/ios客户端/pc客户端/WEB客户端的即时通讯系统.本系统完全自主研发,服务器端源码直接部署在客户主机.非任何第三方IM通讯平台! 功能全面:支持推送.多终端登录.历史消息.数据统计,可扩展位置分享.已读标记.输入中… 1.即时消息/单聊:基础功能,文字.图片.表情.语音.文件等,可基于手机联系人.通过通讯录.原有用户及好友关系进行通讯满足用户间的即时沟通. 2.群组:灵活的创建方式.丰富的权限及管理功能提供群组…
一. TcpServer类: 管理所有的TCP客户连接,TcpServer供用户直接使用,生命期由用户直接控制.用户只需设置好相应的回调函数(如消息处理messageCallback)然后TcpServer::start()即可. 主要数据成员: boost::scoped_ptr<Accepter> acceptor_; 用来接受连接 std::map<string,TcpConnectionPtr> connections_; 用来存储所有连接 connectonCallbac…
像QQ这样的即时通信软件,时不时就会从桌面的右下角弹出一个小窗口,或是显示一个广告.或是一个新闻.或是一个公告等.在这里,我们将其统称为“全局系统通知”.很多使用C#开源即时通讯系统——GGTalk的朋友都建议我加上一个类似的功能,今天,GGTalk 5.1终于实现了这一功能,并且可以通过Web后台发送全局系统通知.下面,我们将一步步讲述这一功能是如何实现的(通过类似同样的步骤,大家可以为GGTalk添加任意的自己需要的功能). 1.定义消息类型和协议类 我们将全局系统通知分为两类: (1)第一…
http://www.cnblogs.com/justnow/ GGTalk ——C#开源即时通讯系统 下载中心   GGTalk(简称GG)是可在广域网部署运行的QQ高仿版,2013.8.7发布GG V1.0版本,至今最新是5.5版本,关于GG更详细的介绍,可以查看 可在广域网部署运行的QQ高仿版 -- GGTalk总览. GGMeeting是可在广域网部署运行的视频会议系统Demo,2015.05.11发布V1.0版本,关于GGMeeting更详细的介绍,可以查看 打造自己的视频会议系统 G…
leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcessor -> ProposalRequestProcessor ->CommitProcessor -> Leader.ToBeAppliedRequestProcessor ->FinalRequestProcessor 具体情况可以参看代码: @Override protected v…
上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析各自一下消息处理过程: 前文可以看到在 1.在单机情况下NettyServerCnxnFactory中启动ZookeeperServer来处理消息: public synchronized void startup() { if (sessionTracker == null) { createSe…
Netty 4源码解析:服务端启动 1.基础知识 1.1 Netty 4示例 因为Netty 5还处于测试版,所以选择了目前比较稳定的Netty 4作为学习对象.而且5.0的变化也不像4.0这么大,好多网上的例子都已经过时了. <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.0.25.Final</ver…
在即时通讯系统(IM)中,加密重要的通信消息,是一个常见的需求.尤其在一些政府部门的即时通信软件中(如税务系统),对即时聊天消息进行加密是非常重要的一个功能,因为谈话中可能会涉及到机密的数据.我在最新的GG 4.5中,增加了对即时聊天消息进行加密的功能,但这一功能并不是强制的,可以通过开关来进行控制.本文就从 为什么要加密消息.不加密有什么风险开始说起,一直到把GG即时通信系统中实现加密消息的完整实现介绍清楚. 想要直接下载体验的朋友请点击:下载中心 一.为什么要加密即时聊天消息? 我们知道所有…
参考文献:极客时间傅健老师的<Netty源码剖析与实战>Talk is cheap.show me the code! ----主线:  ----源码: 先在服务端加个断点和修改下代码:如图: 然后启动server和client;然后跳过bossGroup到workerGroup;进入workerGroup的关闭:在此之前呢,先在NioEventLoop里面的关闭处打个断点: 然后跟进来看看closeAll(); 这里selectAgain();目的是为了去除canceled的key,接下来的…