当我想写一个非常早期的一点总结。但总是忙没有时间停止做这样的事情。

秦与我的兄弟之前说的,这并不是说我没开灵。但是,因为很多事情还没有时间来写blog。

我没有完全理解,真到自己在这个位置上的时间,能够理解的心情和秦哥的时候给我这个小菜逼的郁闷吧。

好了,言归正传,还是来说说XMPP吧。

1.字面上的理解XMPP

xmpp中文名:可扩展通讯和表示协议,英文名:Extensible Messaging and Presence Protocol。详细怎么定义的我就不多说了,好吧,我承认这是百度百科给的答案,虽然理解有点费劲,可是还是希望没有不论什么IM基础你在做基于XMPP的IM
之前看看百度百科的定义这块(代码相关的能够不用看了,没啥用)。尽管有点鸡肋,可是对于英文不是非常好的同学还是有点帮助的。

关键key:可拓展extensible, presence 出席, protocol协议。

这段定义,希望你牢记这三个描写叙述key。是的,要倒背如流,由于接来下的英文文档,就是环绕这三个key来进行的文章。

2.学习和阅读XMPP

假设你想做陌陌,微信,Twitter这种大哥哥软件。学习和阅读官网是唯一出路。

官网:http://xmpp.org/ 哪里不懂点这里。万恶之源(由于你须要长时间的阅读这些密密麻麻的英文字符)

中文翻译网:http://wiki.jabbercn.org  假设你真的英语非常烂。这有份中文的。

事实上鄙人是不想贴中文翻译的,并非我装逼(读英文,看英文文档就高大上,高帅富),而是血的教训让我告诫你们,谁MLGB的让我看的中文翻译站点。坑死老子了!

cao!自从看了中文文档后,我须要重复的參照中文文档,然后找到官网的英文版看三遍。就是这么的费劲,由于中文给的 变量名词居然这么TMD不好理解。还不如英文描写叙述的形象。

特别是各种各样的规定。configuration,relationXEP。client须要注意的。server端须要注意的等等等。这些中文都处理的不是非常好。

随时准备一本字典。開始干活吧。

3.准备工作

aserver搭建好了。你才干干活。(这块没经验。纯client的菜逼不好误导大家)

b.阅读一遍RFC

好吧。罗马不是一天造就的,你今天一天就能够啥也不干,仅仅看RFC6121了。

假设你们经理骂你,催你,你能够理直气壮的拿鄙人的一句话来回他:

转载请署名出处。谢谢:)

原文传送门

大哥,这个东西真的非常难。。

。写这个blog的菜逼都须要用两天来看这个RFC6121才敢动手写,我TM的仅仅看一天,都不行吗,我明天就開始写代码了,真的。

btw:假设你真的不能理解透RFC6121,你也能够放弃书写core IM 了。后面的东西你的速度会 比 理解这套RFC的人慢至少3倍速度。千万不要认为这个东西easy,认为这个不重要。当然你能够不听我的劝告,可是希望项目快上线的时候,不会有各种错误,各种莫名其妙的问题。

btw2:XEP没有RFC重要

btw3:基于xmppFramework 的IOS client appstore搜索 whosv,体验一下(2.0.3以后的版本号不是我维护的,是的,我辞职不干了)。

btw4:下期预告<怎样理解RFC6121。RFC6121简单介绍>。(为什么是简单介绍,非常多细节我也忘记了,菜逼不好误导大家。仅仅能给慷慨向)

版权声明:本文博主原创文章,博客,未经同意不得转载。

XMPP我写底层协议(零)--废话和准备开幕前的更多相关文章

  1. 微博CacheService架构浅析 对底层协议进行适配

    https://mp.weixin.qq.com/s/wPR0j2bmHBF6z0ZjTlz_4A 麦俊生 InfoQ 2014-04-21 微博作为国内最大的社交媒体网站之一,每天承载着亿万用户的服 ...

  2. Js 正则表达式 写了一个正整数或小数点或分数前两个正则表达式

    写了一个正整数或小数点或分数前两个正则表达式 /^[0-9]+([.]{1}[0-9]{1,2})? $/ 版权声明:本文博客原创文章.博客,未经同意,不得转载.

  3. 【手记】小心在where中使用NEWID()的大坑 【手记】解决启动SQL Server Management Studio 17时报Cannot find one of more components...的问题 【C#】组件分享:FormDragger窗体拖拽器 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed

    [手记]小心在where中使用NEWID()的大坑 这个表达式: ABS(CHECKSUM(NEWID())) % 3 --把GUID弄成正整数,然后取模 是随机返回0.1.2这三个数,不可能返回其它 ...

  4. xmpp muc 群聊协议 4

    7. Occupant Use Cases The main actor in a multi-user chat environment is the occupant, who can be sa ...

  5. xmpp muc 群聊协议 3

    6. Entity Use Cases A MUC implementation MUST support Service Discovery [7]. 服务端必须实现 service discove ...

  6. firefox 自写底层扩展,源码简介

    还记得2010年的时候,那时候开始喜欢上了js,经常逛MDN 一开始写些简单的油猴脚本,慢慢的接触了扩展开发,发现用自己的js知识 加上firefox的插件API,可以完成好多功能. 看了很多插件的源 ...

  7. Egret学习笔记.1 (写在前面的废话)

    我记得之前谁说过,大部分程序员入行,都是因为小的时候的游戏机啊,各种电子设备啊....觉得有意思,才入的行 . 至少我本人是因为之前上高中那会儿,喜欢玩手机.那会儿还是MTK,塞班的时代,喜欢拿着手机 ...

  8. xmpp muc 群聊协议 2

    Roles and Affiliations There are two dimensions along which we can measure a user's connection with ...

  9. xmpp muc 群聊协议 1

    翻译来自 :http://wiki.jabbercn.org/index.php?title=XEP-0045&variant=zh-cn#.E6.9C.AF.E8.AF.AD 通用术语 Af ...

随机推荐

  1. Cocos2d-x 创建(create)动画对象CCAnimation报错分析

    本人在使用精灵表单创建动画的过程中突然遇到了一些个问题,下面进行一下分析总结. 根据在Cocos2d-iphone中的经验,我写出了如下的代码: CCSpriteFrameCache::sharedS ...

  2. JavaScript学习总结1

    /***我是切割线 的開始***/ //利用prototype属性能够加入公有属性和方法 function myConstructor2(){ this.a='大灰狼'; }; //声明构造函数,能够 ...

  3. Android WebView挂马漏洞--各大厂商纷纷落马

    本文章由Jack_Jia编写,转载请注明出处.   文章链接: http://blog.csdn.net/jiazhijun/article/details/11131891 作者:Jack_Jia ...

  4. JSF之经常使用注解

    @ManagedBean 以托管 bean 的形式注冊一个类实例.然后将其放入到使用当中一个 @...Scoped 凝视指定的范围内.假设没有指定不论什么范围.JSF 将把此 bean 放入请求范围. ...

  5. Access Violation at address 00000000.Read of address 00000000 解决办法

    是数组越标或没有初始化某个对象之类的问题,搂住细细检查一下代码, 使用指针前未做检查,而这个指针未初始化. 可能是new后没有delete,这样出现溢出的可能性比较大     检查代码或者跟踪试试 使 ...

  6. pv操作 生产者消费者

    #include <iostream> #include <stdlib.h> #include <pthread.h> #include <semaphor ...

  7. WM_PARENTNOTIFY的作用(不完全)

    VCL里源码如下: procedure TWinControl.WMParentNotify(var Message: TWMParentNotify); begin with Message do ...

  8. [Android学习笔记]LinearLayout布局,剩余空间的使用

    转自:http://segmentfault.com/q/1010000000095725 如果使得一个View占用其父View的剩余空间? 答案是使用:android:layout_weight = ...

  9. map size mismatch; abort

    数据库启动时有莫名的提示map size mismatch; abort 原帖在这里:http://t.askmaclean.com/thread-1397-1-1.html 今天帮网友(centos ...

  10. Qt线程同步操作用QWaitCondition QMutex

    可以看到Qt提供了一个等待事件发生的类QWaitCondition,当条件满足时可以唤醒其它等待的线程. 写一个类可以在线程间实现同步功能 #ifndef THREADEVENT_H #define ...