XMPP我写底层协议(零)--废话和准备开幕前
当我想写一个非常早期的一点总结。但总是忙没有时间停止做这样的事情。
秦与我的兄弟之前说的,这并不是说我没开灵。但是,因为很多事情还没有时间来写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我写底层协议(零)--废话和准备开幕前的更多相关文章
- 微博CacheService架构浅析 对底层协议进行适配
https://mp.weixin.qq.com/s/wPR0j2bmHBF6z0ZjTlz_4A 麦俊生 InfoQ 2014-04-21 微博作为国内最大的社交媒体网站之一,每天承载着亿万用户的服 ...
- Js 正则表达式 写了一个正整数或小数点或分数前两个正则表达式
写了一个正整数或小数点或分数前两个正则表达式 /^[0-9]+([.]{1}[0-9]{1,2})? $/ 版权声明:本文博客原创文章.博客,未经同意,不得转载.
- 【手记】小心在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这三个数,不可能返回其它 ...
- xmpp muc 群聊协议 4
7. Occupant Use Cases The main actor in a multi-user chat environment is the occupant, who can be sa ...
- xmpp muc 群聊协议 3
6. Entity Use Cases A MUC implementation MUST support Service Discovery [7]. 服务端必须实现 service discove ...
- firefox 自写底层扩展,源码简介
还记得2010年的时候,那时候开始喜欢上了js,经常逛MDN 一开始写些简单的油猴脚本,慢慢的接触了扩展开发,发现用自己的js知识 加上firefox的插件API,可以完成好多功能. 看了很多插件的源 ...
- Egret学习笔记.1 (写在前面的废话)
我记得之前谁说过,大部分程序员入行,都是因为小的时候的游戏机啊,各种电子设备啊....觉得有意思,才入的行 . 至少我本人是因为之前上高中那会儿,喜欢玩手机.那会儿还是MTK,塞班的时代,喜欢拿着手机 ...
- xmpp muc 群聊协议 2
Roles and Affiliations There are two dimensions along which we can measure a user's connection with ...
- xmpp muc 群聊协议 1
翻译来自 :http://wiki.jabbercn.org/index.php?title=XEP-0045&variant=zh-cn#.E6.9C.AF.E8.AF.AD 通用术语 Af ...
随机推荐
- 成功为Android系统配上了GNU开发环境
单击此处获得本文的最新更新 经过一周的艰苦努力,成功为我的小米2手机适配上了全功能的GNU开发环境,完全兼容GNU/LINUX(Android自带的bionic.linker真心不好 ...
- delphi 使用superobject实现jsonrpc的http远程调用 good
http://blog.csdn.net/earbao/article/details/46423167
- 14.3.5.3 How to Minimize and Handle Deadlocks 如何减少和处理死锁
14.3.5.3 How to Minimize and Handle Deadlocks 如何减少和处理死锁 这个章节建立关于死锁的概念信息,它解释如何组织数据库操作来减少死锁和随后的错误处理: D ...
- QML性能
1) Limit JavaScript a) inline JavaScript: 内联的JavaScript方法; 1. 将js方法放置在Element内部; 2. 尝试将语句写在一行内; ...
- GC日志分析
JVM的GC日志的主要參数包含例如以下几个: -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的具体日志 -XX:+PrintGCTimeStamps 输出GC ...
- ASA IPSEC VPN配置
ASA-1配置 : Saved:ASA Version 8.0(2) !hostname ASA-1enable password 8Ry2YjIyt7RRXU24 encryptednames!in ...
- 为什么国外程序员爱用苹果Mac电脑?(转)
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒.那么为什么专业人士也对 Mac 情有独钟呢?从个人使用 ...
- zoj2760(最大流)
传送门:How Many Shortest Path 题意:给出n个点,和n*n的矩阵表示有向图.a[i][j]为-1表示i到j没有路径:不为-1则表示i到j的路径长度.给出一个vs和vt,要求vs到 ...
- Amazon.com : The Odyssey of the Manual Toothbrusher
Amazon.com : The Odyssey of the Manual Toothbrusher The Odyssey of the Manual Toothbrusher
- .Net程序猿乐Android开发---(4)注册页面布局
接下来我们介绍的登陆页面布局,在本节中,我们看一下注册页面布局,页面布局大同小异,来一起熟悉下基本控件的使用方法. 效果图: 1.加入注冊页面 右键选中layout目录,加入注冊页面.例如以下图 点击 ...