jabber

聊天服务的设计随想

旧巷老猫 提交于 2020-03-05 17:03:57
聊天系统 Contents 聊天系统 叙 聊天的类型 现有的几个开源方案 Jabber/XMPP的弊端 轻巧的MQTT 架构设计实现 叙 对于互联的多用户在线游戏,聊天是不可少的。 聊天的类型 这里分类是按用户的多少来分类。 单点类型 很简单如Skype(QQ)那样,你可以和好友,一对一的在线聊天。 多点类型 如Skype,可以自由组织群聊。 现有的几个开源方案 ejabberd ejabberd(基于Jabber/XMPP协议的即时通讯服务器)是Gameloft现在非常废柴的聊天系统。从开源角度,ejabberd似乎是一款不错的聊天替代品。 优点 跨平台,容错,集群和模块化. 容易拓展(轻松的50行用户认证插件代码就集成到现有平台)。 分布式, 容错, 并基于开放标准的实时通讯系统. 功能服丰富的XMPP服务器. 同时适合小规模布署和超大规模布署, 无论它们是否需要可伸缩性. 缺点 对于移动互联网来说,Jabber/XMPP非常臃肿。(以前公司的分布式聊天平台中当群聊到50人时就非常吃力了) 部署麻烦。 维护性差,维护难度大。 openfire Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。优点是易用安装使用,还提供WEB管理工具。 Jabber/XMPP的弊端 对于移动互联网环境来说,XMPP是臃肿的,实践中表现并非尽人意

在GoogleTalk上与QQ、MSN好友聊天

江枫思渺然 提交于 2020-02-22 12:50:40
jabber通信协议,这就使得我们不光可以在jabber客户端上登录使用Google Talk,而且可以利用这一点将QQ、MSN、雅虎通、icq全部整全到Google Talk里面,从此以后你就不用同时在电脑上开N多IM,而只用开Google Talk就全部搞定。   下面介绍怎样利用jabber客户端Psi将你的MSN,雅虎通,aim/icq,QQ整合到Google Talk中,此设置过程要用到Psi,之后就不用开Psi了,只需开Google Talk就能和MSN好友聊了。   首先当然是安装好Psi,Psi的官方地址为: http://psi.affinix.com/download 。安装完成后,可以参照google talk官方帮助文件里的设置(已经够详细了)将你的Google Talk帐号设置成缺省登录帐号,然后登录你的帐号状态为"online"。   点击Psi左下角的系统菜单中的"Service Discovery"寻找jabber服务器,在所弹出窗口的"Address"栏填上jabber服务器地址如jabbernet.dk,后面的 "Node"可以不用选,然后点"Browse",下面就会显示支持的IM的jabber服务器地址。      jabber服务器参考地址:jabbernet.dk   jaim.at   bgmn.net   freelinq.com  

xmpp协议学习笔记

扶醉桌前 提交于 2020-01-05 05:07:07
本文是根据 xmpp协议视频教程 的学习笔记。 每一个客户端使用JID(jabber identifier)来作为身份标识 ,格式为[user"@"]domain["/"resource],其中 domain:服务器域名; user:用户名; resource:属于用户的位置或设备,比如是手机还是电脑 一个用户可以同时以多种资源与统一个XMPP服务器连接,完整的JID例子:zhangsan@gmail.com/iphone6s stanza的通用属性:from,to,type,id(from属性与to属性遵循JID的格式) from:标识消息的发送方,但是考虑到会出现伪造客户端消息来源,服务器一般不会直接采用from的数据来确认数据是由谁发的,而是更具连接状态做校验。 to:指定消息的所要发送的对象,如果没有给出to属性,则服务器认为该消息是发送给自己的,而不会转发给其他的用户。 type:指定一段stanza的类型 id:stanza的唯一性标识,当客户端向服务端发送消息后,服务端向客户端做出响应,此处的id用于表示服务端是否是针对之前给此服务端发送消息的客户端的做唯一性标识。客服端在给服务端发消息的时候会在消息中加上该id。服务端在向客户端回复消息的时候回在消息中加上同样的id。 stream标签 client通过向server发送下面一段stanza来请求建立连接

XMPP协议分析-原理篇

余生颓废 提交于 2020-01-05 05:02:16
XMPP 协议简介 XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。 XMPP 协议特点 1)所有XMPP信息都是以XML为基础的,信息交换的事实标准,扩展性强 2)XMPP系统是一个分布式系统,每台服务器控制自己的资源,但是如果需要,它能与外在的系统进行通信。XMPP服务器利用开放的XML协议来进行S2S(Serverto Server)通信,就像在C2S(Client to Server)一样。相比之下,大多数的IM系统使用了只是支持C2S/S2C通信的协议,因此Jabber/XMPP服务器具有更大的灵活性。 3)XMPP协议是公开的,程序则开放源代码。定义了客户端和服务器端的交互要经由XML流。普通消息类型(message),如改变状态(presence),传递消息内容或查询/更新(info/quey)应用则用每个指定的命名空间(namespace)来建立。 4)状态(Presence

zabbix邮件报警

可紊 提交于 2019-12-30 04:09:55
示警媒介 一般情况下,zabbix监控主机都配置了触发器,触发器被触发发送消息给运维,需要中间介质来接收并传递消息。 zabbix默认的【示警媒介类型】有三种,Email、Jabber、SMS。 (1)Email:使用sendmail发送邮件,从这边出去的邮件基本是垃圾邮件。 (2)SMS:需要短信设备,没有,所以没用过这东西 (3)Jabber:Jabber有第三方插件,能让Jabber用户和MSN、YahooMessager、ICQ等IM用户相互通讯。因为Google遵从Jabber协议,并且Google已经将Gtalk的服务器开放给了其它的Jabber服务器。所以PSI、Giam等Jabber客户端软件支持GTalk用户登陆。国内没啥人用。 sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果需要使用命令行发送邮件,那么sendEmail是不错的选择。sendEmail使用简单并且功能强大。这个被设计用在php、perl和web站点使用。 请注意,不是sendmail。 sendEmail安装 # 下载软件 wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz # 解压软件 # tar zxvf sendEmail-v1.56.tar.gz # 进入目录 cd

xmpp协议分析

蹲街弑〆低调 提交于 2019-12-19 21:13:27
连接服务器: SENT: <stream:stream to="jabber.cn" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0" > RECV: <?xml version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='43FEAEE5' xmlns='jabber:client' from='jabber.cn' version='1.0'> RECV: <stream:features><register xmlns='http://jabber.org/features/iq-register'/><auth xmlns='http://jabber.org/features/iq-auth'/></stream:features> 登录(身份验证): SENT: <iq id="jcl_103" type="get"><query xmlns="jabber:iq:auth"><username>renziyi</username></query></iq> RECV: <iq id='jcl_103' type='result'><query

#036 –Cisco Jabber Update

大城市里の小女人 提交于 2019-12-05 12:45:09
高雪平 我的协作学习笔记 2018-09-15 最近有些客户问了我些关于Cisco Jabber的问题,比如: 手机上CiscoJabberJabber接收到了对方发来的消息,为什么电脑上收不到、看不到这几条消息? 我们比较看重手机上的固定群组功能,Cisco Jabber手机版什么时候出这个功能啊? 我们公司计划在iPhone或者Android手机里的EnterpriseMobility Management (EMM)企业移动平台安全沙盒里部署Cisco Jabber,便于隔绝个人手机应用环境与企业Cisco Jabber应用。你有没有什么经验? 我们公司内网新加坡、上海和巴黎有三套CallManager集群,用的是同一套微软AD域,现在集团想在整体部署Cisco Jabber,你有什么好的部署建议? 公司计划上10万个Cisco Jabber,我们是认真的。你帮忙想想架构怎么设计。 我有一年多没怎么关注过Cisco Jabber了(主营业务是Webex啊),诸如此类的问题我是答不了上来的。 抽空花了点时间翻阅了一下这一年多来Cisco Jabber的各个版本。嗯,虽然有这样那样让人吐槽的地方,但总体上说CiscoJabber一直在努力改进,越做越好。 下面汇总下各个版本的主要功能特性(不全,仅仅罗列了些感兴趣和重要的): 一、CiscoJabber 11.x 序号

File transfer using XMPP (Extension XEP-0065)

匿名 (未验证) 提交于 2019-12-03 08:30:34
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Not sure why I am getting turn socket failed (turnSocketDidFail called). Anybody can help me in figure out this? Please point me what am I doing wrong here. I know there are lots of question like this and I have already checked all of these and from that I have taken little help already. One of client is Spark and other is simulator. Settings: Server: testXyz Senderjid: user1@testXyz Receiverjid: user2@testXyz XMPPJID *jid = [XMPPJID jidWithString:Receiverjid]; [TURNSocket setProxyCandidates:[NSArray arrayWithObjects:Receiverjid, nil]];

FileTransfer using XmppFrameWork in ios

匿名 (未验证) 提交于 2019-12-03 02:13:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: i have implemented some code of file transfer by using this tutorial : Please Click Here. and the code which i am using : - ( void ) sendToOtherDevice :( NSData *) fileData receiverJid :( NSString *) receiverJid { XMPPJID * jid = [ XMPPJID jidWithString : receiverJid ]; XMPPSIFileTransfer * sifiletransfer = [[ XMPPSIFileTransfer alloc ] init ]; [ sifiletransfer initiateFileTransferTo : jid withData : fileData ]; NSString * s = [ NSString stringWithFormat :@ "%@/spark" , receiverJid ]; NSString * jabbarID = [[[[ self appDelegate ]

ProviderManager

匿名 (未验证) 提交于 2019-12-02 23:56:01
org.jivesoftware.smack.provider.ProviderManager public final class ProviderManager extends Object 管理提供程序以解析XMPP数据包的自定义XML子文档。 存在两种类型的提供者: IQProvider - 将IQ请求解析为Java对象。 PacketExtension - 将附加到数据包的XML子文档解析为PacketExtension实例。 IQProvider 默认情况下,Smack只知道如何使用几个名称空间中的子数据包处理IQ数据包,例如: jabber:iq:auth jabber:iq:roster jabber:iq:register 由于更多的IQ类型是XMPP及其扩展的一部分,因此提供了可插入的IQ解析机制。 IQ提供程序以编程方式或通过创建提供程序文件进行注册。 该文件是包含一个或多个iqProvider条目的XML文档,如以下示例所示: 1 <?xml version="1.0"?> 2 <smackProviders> 3 <iqProvider> 4 <elementName>query</elementName> 5 <namespace>jabber:iq:time</namespace> 6 <className>org.jivesoftware.smack