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 ...
随机推荐
- 使用PageHeap.EXE或GFlags.EXE检查内存越界错误
必先利其器之一:使用PageHeap.EXE或GFlags.EXE检查内存越界错误 Article last modified on 2002-6-3 ------------------------ ...
- Servlet API中文版
基本类和接口 一.javax.servlet.Servlet接口 servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理 ...
- 如何用jsp页面生成随机的验证数字码
checkNum.jsp <%@ page language="java" import="java.util.*,java.sql.*" pageEnc ...
- Hadoop之MapReduce程序应用三
摘要:MapReduce程序进行数据去重. 关键词:MapReduce 数据去重 数据源:人工构造日志数据集log-file1.txt和log-file2.txt. log-file1.txt内容 ...
- Android程序的目录结构
本篇文章我们将介绍Android应用程序的目录结构.本目录下有如图的目录结构: 下面我们来一 一介绍: 1. Src:该目录中存放的是该项目的源代码 2. Gen:该目录下的文件全部都 ...
- socket网络编程的一些基础知识
源地址:http://blog.csdn.net/roger_77/article/details/1453049 目录: 1) 什么是套接字? 2) Internet 套接字的两种类型 3) 网络理 ...
- Android周报
Android周报 原文 http://www.race604.com/android-weekly-25/ 文章/教程 使用 Kotlin 开发 Android 应用系列 看起来用 Kotli ...
- ExtJs选择器
想要利用ExtJS的库函数对DOM进行各类操作,就要得到Element类型的对象,但是Ext.get()取到的虽然是Element,但是参数只能是id,如果大家对jQuery的selector方式很喜 ...
- 浏览器url传参中文时得到null的解决方法
在写一个中文参数需求的时候遇到了以下问题,经过半天的测试和各种编码,以及网上一些有用没用的资料尝试终于解决 比如下面的url地址:http://travel.widget.baike.com:8 ...
- BZOJ 1324 Exca 神剑 最小割
标题效果:鉴于加权值矩阵,带走一个地方的权利值之后,与其相邻的格儿童权利值变0.问多少可以取出到右值. 思维:Amber论文题目.不难建设,图着色.颜色从S连边,还有一种颜色向T连边.再把相邻的格子连 ...