openfire - iosfighterlb

发现这一段写得不错:

openfire由java编写,基于xmpp协议,开源的实时协作服务器,具有跨平台能力,它是实现XMPP的server端包。Openfire和客户端是C/S架构。

优点:(1)内部集成web服务器 (2)插件机制,扩展方便,这个也是学习的大方向 (3)容量大,并行容载能力强 等


相信openfire大家都不陌生,网上关于安装和配置,详解的太多了。

我就记录一下学习的过程中遇到好玩的东西:

1.openfire服务器分为几个大块的栏目,其中用户栏就是所创建和登录的用户,好玩的是可以直接通过mysql来创建,只要指明了权限就可以直接登录openfire。这里进一步说明了数据库操作的权限的重要。这里比较搞笑的是,因为我忘记密码了,所以用root根权限删除了ofUser里面的所有用户,再重新创建一个,嘻嘻,说明技术最重要还是捣鼓出来的。

其中如果创建用户没有指明时间,时间戳是指定到1970,不知道为什么很多技术都对1970特别钟情。

群组聊天也是分为单独一栏,说明群聊的技术含量还是大。


2.会话端其实才是突显XMPP的最多地方:资源、node、状态、出席、优先级、客户端IP、关闭连接都是XMPP的核心内容啊



3. 当应用spark来演示通信的时候,会发现更多有趣的东西,技术名词的英文更需要我们的实践才能真真切切的了解这个文字的意义。


(1)Subscription 作为XMPP的一个重要内容,原来指的是好友请求那些消息的处理等。

(2)testone@127.0.0.1  username: 就是前面理论知识强调的  username@hostname 格式。


4.结合mysql输出内部的东西更能深入理解! 可惜的是Mac下居然不能同时打开spark实在是败笔啊。只能每次都退出重新登录,了解到已收到的消息openfire是不会帮你保存滴,只能帮你保存些离线消息。注意前后的细节和重要的东西,多模拟和联系!     

输出ofOffline(即保存离线消息的表),我们可以看到:


我们可以清楚看到,由几个字段组成:username  messageID  creationDate  messageSize  stanza.

说明:messageID:  ID of stored message (Primary Key)  消息ID是作为主键。

           stanza:          The message Text  消息文本

这些要从文档里面读出来,所以呢,加强读文档的能力哦。

原文:


 
 
username VARCHAR 32 User Name (Primary Key)
messageID
NUMBER
n/a
ID of stored message (Primary Key)
creationDate
VARCHAR
15
Date message stored
messageSize
NUMBER
n/a
Size of message in bytes

stanza

 

TEXT
n/a

The message text

 



我们可以到messageID从5开始,而不是从1开始,为什么呢? 原来用户一收到就会被删掉的哦。

最后,重头戏:stanza:我们随便挑选一个看看:

<message id="eGWh7-31" to="admin@127.0.0.1" from="test@127.0.0.1/Spark 2.6.3" type="chat">

<body>  just test for first connection.</body>

<thread>6clv2f</thread>

<x xmlns="jabber:x:event">

<offline/>

<composing/>

</x>

</message>

细细品味,其实就是前面的东西,套的是 to from xml节 message流结构罢了。

软件的封装就是那么酸爽!





未解决问题:

1.ofOffline保存离线的消息,那么在线的消息,怎么保存,谁保存?

收获:理论+实践 才是正道!

待续:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值