
,
即时通信(Instant Message /IM)的含义有许多的IM系统,如AOL、Yahoo IM、 MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议
协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已经出现过的IM协议包括:IETF的对话初始协议(SIP)和即时通讯对话初始协议和表示扩展协议(SIMPLE)、应用交换协议(APEX)、显示和即时通讯协议(PRIM)及基于XML且开放的可扩展通讯和表示协议(XMPP)协议(常称为 Jabber 协议)
XMPP
XMPPframeWork
配置MYSql服务器
配置客户端
XMPP的框架就是用的她 我们把TCP的Socket 叫做 流式 stream UDP 的socket 叫做 报文或报式 Socket
XMPP :Extensible Messaging and Presence Protocol,以Jabber协议(XMPP协议前身)为基础 XMPP协议基于可扩展标记语言XML,建立TPC/IP连接,完成C/S、C/C、S/S之间的数据传输。XMPP是一个消息传输国际化标准协议。 XMPP官网:http://xmpp.org XMPP官方中文wiki:Jabber/XMPP中文翻译计划
XMPP是基于XML的协议,用于即时消息(IM)以及在线现场探测。最初,XMPP作为一个框架开发,目标是支持企业环境内的即时消息传递和联机状态应用程序。 XMPP前身是Jabber(1998年),是一个开源组织定义的网络即时通信协议
XMPP是一个分散型通信网络,这意味着,只要网络基础设施允许,任何XMPP用户都可以向其他任何XMPP用户传递消息。多个XMPP服务器也可以通过一个专门的“服务器-服务器”协议相互通信,提供了创建分散型社交网络和协作框架的可能性
XMPP基于XML协议的
XMPP客户端使用coreData存储,服务器使用MYSql存储。
框架初步认识Core核心库XMPPStrem负责处理Socket流的连接断开读写等XMPPElementDDXMLElement子类fromtoidXMPPJIDJabberID 对象,由 用户名@本地域/资源类型 组成bare只包含用户名和本地域的NSString,缺少资源类型full 完整的JID的NSString,包含资源类型XMPPMessage<message type = “unkown”\>基础消息XML对象。消息正文位于\\中type属性一般有:normal,chat,groupChatXMPPPresence\出席XML对象
子节点: show(有固定的类型) status
type属性一般有:available(上线 默认值),unavailable,subscribe,subscribed,unsubscribe,unsubscribed,probe等
XMPPIQ
信息/查询 XML对象
子节点: error
type属性一般有: result,error,set,get等 XMPPMessage,XMPPIQ,XMPPMessage都是XMPPElement的子类
XMPPModule
可以理解为功能模块的抽象类,基本上不可能直接实例化这个类
一些公有方法: active deactive等
扩展库
XMPPReconnect,XMPPAutoPing ,XMPPRoster,XMPPMessageArchiving,XMPPRoom,XMPPFileTransfer,XMPPVCardTemp,XMPPAvatar等附加功能模块,基本上都是继承XMPPModule
XMPPCoreDataStorage —CoreData存储器抽象类,基本上上述模块对应都有各自的实现
XMPPXXXXCoreDataStorageObject — 各个模块中的托管对象
GCDAsyncSocket、GCDMulticastDelegate,DDLog,XCodeColors 等三方框架
Xcode插件失效解决办法
1.打开xcode插件所在的目录: /{当前用户名}/ Library/Application\ Support/Developer/Shared/Xcode/Plug-ins
2.选择已经安装的插件例如VVDocument,右键点击show package contents,
3.找到info.plist 文件,找到DVTPlugInCompatibilityUUIDs的项目,
4.添加C4A681B0-4A26-480E-93EC-1218098B9AA0(当前xcode的一个号码),这个号码怎么得到? 在终端执行 defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
5.再右键“打开包内容”双击contents\MacOS目录下的一个黑色图标,会打开终端窗口,最后打印“进程已完成”之类,
6.重启xcode
开启XCodeColors
配置DDLog颜色,开启enable属性
schema中添加环境变量 XcodeColors = YES
1、下载软件(字词库转换工具、SQLiteExpertSetup、去重复工具)2、去下载词库,可以去搜狗词库去下载,或者你想导入自己的词库,就导出自己的词库。
我以QQ输入法为例说明
导出文件就可以。
3、转换词库,打开词库转换器,选择你第二布导出的文件,选择该文件的类型 要转换的类型,注意,下图三必须是转换为百度拼音,选择好点转换就可以了,如果是从搜狗下载的词库下图1可以选择时,打开类型选择scel格式,选择文件
4、词库都转换完后,打开去重工具,如果你是从搜狗词库下载的文件是多个,你可以选择存放词库的文件夹进行合并,合并成一个文件,合并的文件存在去重工具目录下(也就是打开去重工具的目录下),合并后 “选择词库”进行“去重复”,点击去重复后等一会,成功后会保存为csv文件。
5、打开SQLiteExpert工具,将CloudUserDictionary.sqlite文件拖到黑色框框里 ,点击zuserdictionaryentry,也就是青色框框,会出现红框框里的内容,红框框选择Data。
6、右击zuserdictionaryentry,打开import text file,按照下图1、2、3、4的顺序 *** 作
导出成功后 就可以关闭SQLiteExpert工具了,导入成功该软件自动保存
7、将CloudUserDictionary.sqlite文件放入到手机里
目录/var/mobile/Library/Keyboard/CoreDataUbiquitySupport/mobile~XXX数字ID /UserDictionary/local/store
8、成功尽量不要点通用-键盘,因为字库有点多,进去的时候会卡一会。
随便打几个字,看词库是不是添加上了,打字的时候词库不会第一时间就出来的,因为词库太大,需要加载一会(大概10分钟左右吧),等加载好后,就可以随便打自己的词库了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)