加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 通讯

简述xmpp和socket区别 推荐xmpp 的基础学习资料

时间:2024-02-28 20:36:28  来源:http://www.facechina.net  作者:admin

一、简述xmpp和socket区别 推荐xmpp 的基础学习资料

xmpp是一个应用层协议,其底层(传输层和网络层)依然是Socket通信。换句话说,xmpp是建立在Socket通信基础上的。

学习资料

1)百度搜索 xmpp,有很多

2)基于XMPP协议的手机多方多端即时通讯方案

【链接】

二、手机端即时通讯app可否使用WebSocket替代XMPP来实现

理论上是可以的!但websocket是一个web协议,并且是一个新技术,如果是采用HTML5写的app可以尝试,但原生app建议还是用xmpp,毕竟它有很多成熟的实现,如openfire。

三、安卓xmpp怎么去ping服务器

IOS使用XMPP做即时聊天,服务器会在一定的时间间隔内(默认是300S)想客户端发送一个IQ,如何客户端不做出响应,服务器则会默认在客户端的连接是断开的。

需要实现xmpp代理- (BOOL)xmppStream:(XMPPStream*)sender didReceiveIQ:(XMPPIQ*)iq ;

处理代码如下

- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq {

PPRSLog(@----------------------%@,iq);

if (iq.isGetIQ) {

//解析iq 是ping类型则给openfier 响应一个IQ

NSXMLElement *query = iq.childElement;

if ([@ping isEqualToString:query.name]) {

//服务器会在给定的时间内向客户端发送ping包(用来确认客户端用户是否在线),当第二次发送bing包时,如果客户端无响应则会T用户下线

NSXMLElement *ping = [NSXMLElement elementWithName:@ping xmlns:@jabber:client];

NSXMLElement *iq = [NSXMLElement elementWithName:@iq];

XMPPJID *myJID = self.xmppStream.myJID;

[iq addAttributeWithName:@from stringValue:myJID.description];

[iq addAttributeWithName:@to stringValue:myJID.domain];

[iq addAttributeWithName:@type stringValue:@get];

[iq addChild:ping];

//发送的iq可以不做任何的设置

[self.xmppStream sendElement:iq];

}

}

return YES;

}

四、android 基于xmpp开发即时通讯时 发送消息的限制

实例挺简单的,已经配置好环境

服务端先装openfire,配置好数据库,建几个用户

然后装spark,可以登录,进去后可以添加好友和进行回话

然后安装这个客户端APP,更改服务器IP,可以进行登录。

只是运行起来有点卡

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门