自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

左雪菲的专栏

欢迎加入高性能服务器开发交流群:729995516

原创 git配置ssh key并从github.com拉取repos

一、配置ssh key1. 进入当前用户目录cd ~2. 生成ssh keyssh-keygen -t rsa -C "ABC@qq.com"ABC@qq.com账号必须是你登录github的账户名中间如果提示文件已经存在可以选择覆盖,提示输入密码,可以直接按Enter跳过。$...

2017-05-25 16:57:07 2109 0

原创 TeamTalk源码分析(十) —— 开放一个TeamTalk测试服务器地址和几个测试账号

由于TeamTalk是用于企业内部的即时通讯软件,一般客户端并不提供账号注册功能。如果你仅对TeamTalk的客户端感兴趣,你可以仅仅研究pc端和移动端代码。官方的测试服务器地址已经失效,所以我已经部署了一套TeamTalk服务器,并建立了几个测试账户可以供你使用: tangseng sunw...

2017-05-25 12:08:05 5619 20

原创 TeamTalk源码分析(九) —— 服务器端route_server源码分析

route_server的作用主要是用户不同msg_server之间消息路由,其框架部分和前面的服务类似,没有什么好说的。我们这里重点介绍下它的业务代码,也就是其路由细节: void CRouteConn::HandlePdu(CImPdu* pPdu) { switch (pPdu-&...

2017-05-20 15:49:18 3129 5

原创 TeamTalk源码分析(八) —— 服务器端file_server源码分析

这篇文章我们来介绍file_server服务的功能和源码实现。TeamTalk支持离线在线文件和离线文件两种传送文件的方式。单纯地研究file_server的程序结构没多大意义,因为其程序结构和其他几个服务结构基本上一模一样,前面几篇文章已经介绍过了。我们研究teamtalk的file_serve...

2017-05-20 15:04:38 3273 2

原创 TeamTalk源码分析(七) —— 服务器端msf源码分析

这篇文章是对TeamTalk服务程序msfs的源码和架构设计分析。msfs作用是用来接受teamtalk聊天中产生的聊天图片的上传和下载。还是老规矩,把该服务在整个架构中的位置图贴一下吧。 可以看到,msfs仅被客户端连接,客户端以http的方式来上传和下载聊天图片。 可能很多同学对h...

2017-05-19 18:13:55 7206 8

原创 WinInet使用详解

WinInet是windows平台对socket进行一层封装,用来直接处理http/ftp/Gopher协议的一套windows API。我第一次接触这个是在一个客户那里,当时因为客户都需要使用http代理才能浏览网页,所以折腾了一天,才基本掌握。而时隔没多久又忘记的差不多了,这个流程就像正则表达...

2017-05-19 10:35:16 10621 5

原创 TeamTalk源码分析(六) —— 服务器端login_server源码分析

login_server从严格意义上来说,是一个登录分流器,所以名字起的有点名不符实。该服务根据已知的msg_server上的在线用户数量来返回告诉一个即将登录的用户登录哪个msg_server比较合适。关于其程序框架的非业务代码我们已经在前面的两篇文章《TeamTalk源码分析(四) —— 服务...

2017-05-18 16:42:27 3948 2

原创 TeamTalk源码分析(五) —— 服务器端msg_server源码分析

在分析msg_server的源码之前,我们先简单地回顾一下msg_server在整个服务器系统中的位置和作用: 各个服务程序的作用描述如下: LoginServer (C++): 负载均衡服务器,分配一个负载小的MsgServer给客户端使用 MsgServer (C++): 消...

2017-05-18 15:21:06 4908 2

原创 TeamTalk源码分析(四) —— 服务器端db_proxy_server源码分析

从这篇文章开始,我将详细地分析TeamTalk服务器端每一个服务的源码和架构设计。这篇从db_proxy_server开始: db_proxy_server是TeamTalk服务器端最后端的程序,它连接着关系型数据库mysql和nosql内存数据库redis。其位置在整个服务架构中如图所示: ...

2017-05-17 18:07:32 6256 12

原创 将char* 赋值给std::string的一些陷阱

这段时间,总是要使用char或者char* 赋值给std::string,踩了不少坑。于是写了个测试代码: #include #include using namespace std; int main(int argc, char* argv[]) { string str1;...

2017-05-12 16:30:56 17730 0

原创 TeamTalk源码分析(三) —— 服务器端的程序架构介绍

通过上一节的编译与部署,我们会得到TeamTalk服务器端以下部署程序: db_proxy_server file_server http_msg_server login_server msfs msg_server push_server router_server 这些服务...

2017-05-10 13:30:10 8931 4

原创 TeamTalk源码分析(二) —— 服务器端的程序的编译与部署

写在前面的话,如果您在部署teamtalk过程中遇到困难,可以关注我的微信公众号『easyserverdev』,在微信公众号中回复『teamtalk部署求助』,我将与你取得联系并协助您解决。或者您对高性能服务器开发感兴趣,您也可以关注我的微信公众号获得技术支持。 这篇我们来介绍下T...

2017-05-05 16:14:20 11059 5

原创 TeamTalk源码分析(一)—— TeamTalk介绍

TeamTalk是蘑菇街开源的一款企业内部用的即时通讯软件(Enterprise IM),类似腾讯的RTX。网上也有很多的介绍,我这里也有写几遍关于这款产品的“流水账”,一方面对自己这段时间的阅读其代码做个总结,尽量做个既能宏观上从全局来介绍,又不缺少很多有价值的微观细节,另一方面如果对于作为读者...

2017-05-05 14:58:30 13436 5

原创 mysql INSERT ... ON DUPLICATE KEY UPDATE语句

网上关于ON DUPLICATE KEY UPDATE大多数文章都是同一篇文章转来转去,首先这个语法的目的是为了解决重复性,当数据库中存在某个记录时,执行这条语句会更新它,而不存在这条记录时,会插入它。 相当于 先判断一条记录是否存在,存在则update,否则insert。其语法是: INSER...

2017-05-02 17:31:04 23658 0

提示
确定要删除当前文章?
取消 删除