<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lanhy999的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/lanhy999</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; lanhy999]]></copyright><item><title><![CDATA[基于Tars高并发IM系统的设计与实现-实战篇6]]></title><link>https://blog.csdn.net/lanhy999/article/details/131499317</link><guid>https://blog.csdn.net/lanhy999/article/details/131499317</guid><author>lanhy999</author><pubDate>Thu, 10 Aug 2023 08:45:53 +0800</pubDate><description><![CDATA[客户端采用跨平台SDK+原生UI的方案。此处重点介绍SDK实现，UI用户可以根据自己需求进行开发。]]></description><category></category></item><item><title><![CDATA[基于Tars高并发IM系统的设计与实现-实战篇5]]></title><link>https://blog.csdn.net/lanhy999/article/details/131499298</link><guid>https://blog.csdn.net/lanhy999/article/details/131499298</guid><author>lanhy999</author><pubDate>Thu, 10 Aug 2023 08:45:17 +0800</pubDate><description><![CDATA[群聊服务既可以接受来自BrokerServer的用户请求，也需要接收来自其他服务的RPC请求;所以本服务提供两套RPC接口：通用RPC接口和专用RPC接口。]]></description><category></category></item><item><title><![CDATA[基于Tars高并发IM系统的设计与实现-实战篇4]]></title><link>https://blog.csdn.net/lanhy999/article/details/131499269</link><guid>https://blog.csdn.net/lanhy999/article/details/131499269</guid><author>lanhy999</author><pubDate>Mon, 24 Jul 2023 21:24:16 +0800</pubDate><description><![CDATA[要完成以上业务，需要通过不同的微服务模块来进行功能实现。]]></description><category></category></item><item><title><![CDATA[基于Tars高并发IM系统的设计与实现-实战篇3]]></title><link>https://blog.csdn.net/lanhy999/article/details/131499204</link><guid>https://blog.csdn.net/lanhy999/article/details/131499204</guid><author>lanhy999</author><pubDate>Thu, 20 Jul 2023 13:49:55 +0800</pubDate><description><![CDATA[采用 tars2cpp 工具自动生成 c++文件：/usr/local/tars/cpp/tools/tars2cpp AuthServant.tars 会生成 AuthServant.h 文件，里面包含客户端和服务端的代码( 编译时会自动处理)。要满足高可用，高并发，低延时三大指标，需要在架构设计上能满足要求，Tars高性能框架能够完全满足高可用、高并发两项指标；一个完整高性能的IM服务设计在满足三大指标（高可用，高并发，低延时）、解决五大难题的同时，也要满足基本的业务功能。进入代码目录,首先做。]]></description><category></category></item><item><title><![CDATA[基于Tars高并发IM系统的设计与实现-实战篇2]]></title><link>https://blog.csdn.net/lanhy999/article/details/131499122</link><guid>https://blog.csdn.net/lanhy999/article/details/131499122</guid><author>lanhy999</author><pubDate>Thu, 20 Jul 2023 13:48:16 +0800</pubDate><description><![CDATA[源码编译过程需要安装:gcc, glibc, bison, flex, cmake下载源码编译安装错误处理如果cmake编译过程中遇到如下错误,directory.directory.到根目录执行如下命令：到servant目录独立拉TarsProtocol后改名为protocol：至此, Tars Cpp的编译环境已经完成;]]></description><category></category></item><item><title><![CDATA[基于Tars高并发IM系统的设计与实现-实战篇1]]></title><link>https://blog.csdn.net/lanhy999/article/details/131498973</link><guid>https://blog.csdn.net/lanhy999/article/details/131498973</guid><author>lanhy999</author><pubDate>Tue, 11 Jul 2023 19:05:42 +0800</pubDate><description><![CDATA[Tars是基于名字服务使用Tars协议的高性能RPC开发框架，同时配套一体化的服务治理平台，帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。Tars是将腾讯内部使用的微服务架构TAF（Total Application Framework）多年的实践成果总结而成的开源项目。Tars这个名字来自《星际穿越》电影中机器人Tars， 电影中Tars有着非常友好的交互方式，任何初次接触它的人都可以轻松的和它进行交流，同时能在外太空、外星等复杂地形上，超预期的高效率的完成托付的所有任务。]]></description><category></category></item><item><title><![CDATA[基于Tars高并发IM系统的设计与实现--进阶篇2]]></title><link>https://blog.csdn.net/lanhy999/article/details/131498680</link><guid>https://blog.csdn.net/lanhy999/article/details/131498680</guid><author>lanhy999</author><pubDate>Wed, 05 Jul 2023 10:27:10 +0800</pubDate><description><![CDATA[超过10000人的群都可以视为超大群；超大群消息量巨大，根据消息优先级进行处理，普通消息允许丢失；正常群聊也就几十人到几百人（微信限制最大500人）群聊中的消息要进行及时扩散，前文中描述的群聊消息转发模式在正常群聊情况下没什么问题；如果超大群也采用这种模式，系统的性能和消息的延时将会出现一些问题；]]></description><category></category></item><item><title><![CDATA[基于Tars高并发IM系统的设计与实现--进阶篇1]]></title><link>https://blog.csdn.net/lanhy999/article/details/131498572</link><guid>https://blog.csdn.net/lanhy999/article/details/131498572</guid><author>lanhy999</author><pubDate>Mon, 03 Jul 2023 15:44:27 +0800</pubDate><description><![CDATA[基于Tars高并发IM系统的设计与实现–进阶篇1。]]></description><category></category></item><item><title><![CDATA[OMTP协议说明文档]]></title><link>https://blog.csdn.net/lanhy999/article/details/131498857</link><guid>https://blog.csdn.net/lanhy999/article/details/131498857</guid><author>lanhy999</author><pubDate>Sun, 02 Jul 2023 10:59:47 +0800</pubDate><description><![CDATA[OMTP(Open Message Transport Protocol)是一套自定义IM消息传输协议。它工作在TCP/IP协议族上基于客户端-服务器即时通讯系统设计的消息通讯协议，数据编码方式为基于Tars/PB的二进制类型。]]></description><category></category></item><item><title><![CDATA[基于Tars高并发IM系统的设计与实现-基础篇2]]></title><link>https://blog.csdn.net/lanhy999/article/details/131498801</link><guid>https://blog.csdn.net/lanhy999/article/details/131498801</guid><author>lanhy999</author><pubDate>Sun, 02 Jul 2023 10:55:29 +0800</pubDate><description><![CDATA[分为服务高可用与存储高可用。]]></description><category></category></item><item><title><![CDATA[基于Tars高并发IM系统的设计与实现-基础篇1]]></title><link>https://blog.csdn.net/lanhy999/article/details/131488670</link><guid>https://blog.csdn.net/lanhy999/article/details/131488670</guid><author>lanhy999</author><pubDate>Sat, 01 Jul 2023 11:50:20 +0800</pubDate><description><![CDATA[InstantMessaging 即时通讯、实时传讯，能以最快的速度把信息从一方传递到另外一方。即时通信系统（IM，Instant Messenger）是一款跨平台（Linux Server，Windows Server），可定制的 P2P 即时通信系统（集成多人视频会议功能），为各行业门户网站和企事业单位提供“一站式”定制解决方案，打造一个稳定，安全，高效，可扩展的即时通信系统.]]></description><category></category></item><item><title><![CDATA[IM MQTT 消息payload不同数据格式对比]]></title><link>https://blog.csdn.net/lanhy999/article/details/50554715</link><guid>https://blog.csdn.net/lanhy999/article/details/50554715</guid><author>lanhy999</author><pubDate>Sat, 26 Nov 2022 10:30:48 +0800</pubDate><description><![CDATA[文本长度
json压缩前
zip压缩后
ProtoBuffer


1
123
127
70


3
129
134
76


31
213
216
160


40
240
247
189


45
255
264
204


50
270
275
222


55
285
282
234


60]]></description><category></category></item><item><title><![CDATA[swift3.0 中字符串截取]]></title><link>https://blog.csdn.net/lanhy999/article/details/52077968</link><guid>https://blog.csdn.net/lanhy999/article/details/52077968</guid><author>lanhy999</author><pubDate>Sun, 31 Jul 2016 12:29:13 +0800</pubDate><description><![CDATA[swift3.0 中不能直接使用下标数字进行字符串解决，只能使用String.Index来做位置索引，要想实现截取功能首先得获取到String.Index;

下面两段代码获取开头可结尾，获取中间部分参数用RangeIndex>即可；





获取结尾两个字符子串：


let sessionId = "this is a test"


    let index ]]></description><category></category></item><item><title><![CDATA[swift3.0 中如何在主线程中刷新UI]]></title><link>https://blog.csdn.net/lanhy999/article/details/52077951</link><guid>https://blog.csdn.net/lanhy999/article/details/52077951</guid><author>lanhy999</author><pubDate>Sun, 31 Jul 2016 12:18:25 +0800</pubDate><description><![CDATA[类似OC 中的GCD,只是调用方法不同，更方便，如下代码，功能为刷新tableview；

 

DispatchQueue.main.async(execute: {

    self.listTableview.reloadData()

})]]></description><category></category></item><item><title><![CDATA[swift3.0 中NSNotification 的使用]]></title><link>https://blog.csdn.net/lanhy999/article/details/52061130</link><guid>https://blog.csdn.net/lanhy999/article/details/52061130</guid><author>lanhy999</author><pubDate>Fri, 29 Jul 2016 08:56:25 +0800</pubDate><description><![CDATA[swift3.0 有很大变化，其中之一就是NSNotification使用跟原来不一样，以前NSNotification name是String；3.0中定义了一个类型NSNotification.name;
使用时最好定义一个NSNotification.name 常量方便使用；
直接上代码：

/通知名称常量
let NotifyChatMsgRecv = NSNotificatio]]></description><category></category></item><item><title><![CDATA[iOS录音中断问题解决]]></title><link>https://blog.csdn.net/lanhy999/article/details/52061063</link><guid>https://blog.csdn.net/lanhy999/article/details/52061063</guid><author>lanhy999</author><pubDate>Fri, 29 Jul 2016 08:45:35 +0800</pubDate><description><![CDATA[iOS录音过程中，有时候会有录音中断问题，本来录50秒，很可能后面10秒就录不上，一般都是程序逻辑出现问题；录制语音前需要对录音设备属性Category设置如下：

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:nil];
或[AVAudioSession sharedInsta]]></description><category></category></item><item><title><![CDATA[centos mysql占用磁盘空间过大解决方法]]></title><link>https://blog.csdn.net/lanhy999/article/details/51656095</link><guid>https://blog.csdn.net/lanhy999/article/details/51656095</guid><author>lanhy999</author><pubDate>Mon, 13 Jun 2016 10:52:10 +0800</pubDate><description><![CDATA[安装了mysql以后，过一段时间发现磁盘空间不足了，查一下，发现是  mysql-bin.000001、  mysql-bin .000002等文件占用了空间，那么这些文件是干吗的?这是数据库的操作日志，例如UPDATE一个表，或者DELETE一些数据，即使该语句没有匹配的数据，这个命令也会存储到日志文件中，还包括每个语句执行的时间，也会记录进去的。 

这样做主要有以下两个目的：

1：]]></description><category></category></item><item><title><![CDATA[Centos 7 安装PHP 7 --skip-broken 问题解决]]></title><link>https://blog.csdn.net/lanhy999/article/details/51275731</link><guid>https://blog.csdn.net/lanhy999/article/details/51275731</guid><author>lanhy999</author><pubDate>Thu, 28 Apr 2016 16:50:37 +0800</pubDate><description><![CDATA[安装步骤：



1.卸载老版本php：

yum remove php* php-common




2.rpm 安装 Php7
相应的 yum源：  

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm     




3.安装新版本：

yum install ph]]></description><category></category></item><item><title><![CDATA[如何计算UDP/TCP检验和checksum]]></title><link>https://blog.csdn.net/lanhy999/article/details/51123626</link><guid>https://blog.csdn.net/lanhy999/article/details/51123626</guid><author>lanhy999</author><pubDate>Mon, 11 Apr 2016 17:40:46 +0800</pubDate><description><![CDATA[如何计算UDP/TCP检验和checksum

一、下面的图是一个UDP的检验和所需要用到的所有信息，包括三个部分：
1.UDP伪首部
2.UDP首部
3.UDP的数据部分（切记不要遗漏该部分，否则就~吐血了~）



首先解释下伪首部的概念，伪首部包含IP首部一些字段。其目的是让UDP两次检查数据是否已经正确到达目的地，只是单纯为了做校验用的。
还有一个概念十分重要，那就是1]]></description><category></category></item><item><title><![CDATA[最简单的iOS真机抓包方式]]></title><link>https://blog.csdn.net/lanhy999/article/details/50780008</link><guid>https://blog.csdn.net/lanhy999/article/details/50780008</guid><author>lanhy999</author><pubDate>Wed, 02 Mar 2016 15:02:27 +0800</pubDate><description><![CDATA[准备生产资料：
1.mac电脑
2.iPhone手机或者iPad
3.安装wireshark


抓包步骤：



1.运行命令rvictl -s [UDID],在电脑上映射一个虚拟网络端口；

rvictl -s  a55f325b5f283d93875397b54d64f76b7adxxxx




2.运行wireshark；捕获rvi0接口内容即可；]]></description><category></category></item></channel></rss>