myjingle的使用经验-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1235563
  • 博文数量: 76
  • 博客积分: 1959
  • 博客等级: 上尉
  • 技术积分: 2689
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-19 12:07
个人简介

樽中酒不空

文章分类

全部博文(76)

文章存档

2020年(4)

2019年(1)

2017年(2)

2016年(2)

2015年(7)

2014年(11)

2013年(13)

2012年(18)

2011年(2)

2010年(16)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: c/c

2012-12-14 14:05:54

1 myjingle底层用到了libjingle。这里只涉及其中的文字部分。语音视频和文件,基本不可能用xmpp来传。
2 myjingle缺省是登录gmail,稍改一下就可以登录openfire:
  talk/xmpp/saslplainmechanism.h
  credential.append(user_jid_.str());修改为credential.append(user_jid_.node());
3 修改后,可以使用域名登录openfire,但一般在本地机器上安装openfire之后,习惯都是以ip登录。myjingle使用ip登录会返回bind失败的错误。跟踪一下,发现问题和上面一样,还是改jid。
在xmpplogintask.cc的xmpplogintask::advance() 这个函数里,
找到 case loginstate_bind_requested:
关键在这一句:
if (pctx_->user_jid_.domain() != str_default_domain &&
           fulljid_.barejid() != pctx_->user_jid_) 。

看一下定义:const std::string str_default_domain("default.talk.google.com");
明显不符合。
然后,两个jid的比较肯定不等,因为登录时我们用的是node。所以修改成:
if (fulljid_.barejid().node() != pctx_->user_jid_.node())
{
return failure(xmppengine::error_bind);
}

重编译一下libjingle和myjingle,登录成功,发消息成功,收消息成功。ok了。
 
阅读(6157) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

sxcong2015-01-15 13:42:59

:语音视频和文件,基本不可能用xmpp来传.这句话是什么意思呢?xmpp不就是传视频和语音的吗?

xmpp最初是用来传文本消息,因为是用xml描述,没办法传二进制。扩展协议应该可以传二进制,但市面上有更好的办法。

|

2015-01-12 10:58:05

语音视频和文件,基本不可能用xmpp来传.这句话是什么意思呢?xmpp不就是传视频和语音的吗?

|
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图