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 ...
随机推荐
- centos下chm阅读器
xchm kchmviewer chmsee
- C语言盲点笔记1
寥寥数笔,记录我的C语言盲点笔记,仅仅为以前经历过,亦有误,可交流. 1.int* a和int *a有差别吗? 没有不论什么差别,都表示a是int指针 建议这么写int *a;这样明显一点 理由例如以 ...
- 怎么获取Spring的ApplicationContext
在 WEB 开发中,可能会非常少须要显示的获得 ApplicationContext 来得到由 Spring 进行管理的某些 Bean, 今天我就遇到了,在这里和大家分享一下, WEB 开发中,怎么获 ...
- android app 架构设计02
二:在开放的过程中,尽量把工具类,BaseActivity 放在指定的位置. DateFormat Bitmap Notification Shared Preference Environment ...
- STL__queue_的应用
转:http://hi.baidu.com/xiaotiandm/item/bda34511cf9e99098fbde41a 调用的时候要有头文件: #include<stdlib.h> ...
- Cocos2dx 3.x创建Layer的步骤
创建 1.新建类文件.注意文件夹为Classes下.否则文件不能正常找到. 2.改动预编译头.如用VS,默觉得#pragma once,为了兼容,改为#ifndef | #define | #endi ...
- 【VBA研究】查找目录以下全部文件的名称
作者:iamlaosong 目录里面保存有面单扫描的图像文件,文件名称为邮件号码.如今想收集这些邮件号码,由于量非常大,不可能一个一个的截取,仅仅能通过程序实现.假定,当前工作表B列里放的是存放这些图 ...
- mysql-merge合并表
merge表 注意: 1 每个子表的结构必须一致,主表和子表的结构需要一致, 2 每个子表的索引在merge表中都会存在,所以在merge表中不能根据该索引进行唯一性检索. 3 子表需要是MyISAM ...
- unity3D的FingerGestures小工具
夹 FingerGestures包结构 FingerGestures样例列表 设置场景 教程:识别一个轻敲手势 教程:手势识别器 教程:轻击手势识别器 教程:拖拽手势识别器 教程:滑动手势识别器 教程 ...
- MySQL中Procedure事务编写基础笔记
原文:MySQL中Procedure事务编写基础笔记 目录: 一.PROCEDURE: 二.CREATE PROCEDURE基本语法: 三.PROCEDURE小进阶 3.1.基本的DECLARE语 ...