gloox不能注册新用户的问题

原创 2006年05月23日 10:45:00

经过测试,发现gloox 0.8版自带的测试程序register_test.cpp,是没有办法注册新用户的

前面的三步是这样没错
Client->Server 001
<?xml version='1.0' ?>
<stream:stream to='jabber.org
xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
xml:lang='en'
version='1.0'>
客户端向服务器建立连接,version='1.0'代表客户端的所用的XMPP的版本,没有表示是0.x版,o.x版与1.0版的验证方式不同

S->C 002
<?xml version='1.0'?>
<stream:stream xmlns:stream='http://etherx.jabber.org/streams'
xmlns='jabber:client'from='jabber.org'
version='1.0'
id='7mh6bxa8x95js1ubvkxyupysze2xpz6jhxtrzzpq'>
服务器响应连接

S->C 003
<stream:features xmlns:stream='http://etherx.jabber.org/streams'>
<mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
    <mechanism>DIGEST-MD5</mechanism>
    <mechanism>PLAIN</mechanism>
</mechanisms>
</stream:features>
服务器返回支持的验证方式

第四步应该就是发送注册新用户的请求了,但应际上,它还是发登录验证,未注册的当然就验证不通过,连接也就断开了

我改了一些代码,让注册可以实现
1. 继承Client类,重载了handleNormalNode函数
class RegisterClient : public Client
{
    public:
    RegisterClient( const JID& jid, const std::string& password, int port = -1 ):
    Client(jid,password,port)
    {
    }
  bool RegisterClient::handleNormalNode( Stanza *stanza )
  {
    if( stanza->name() == "stream:features" )
    {
        //fastxyf modify
        notifyOnConnect();
        return true;

    };
    return false;
  };
};
2. 将RegTest类中star函数中的
  j = new Client( jid, szPassword );
改为:
  j = new RegisterClient( jid, szPassword );
这样就可以注试通过了

新注册的用户名,密码是在handleRegistrationFields函数中指定的

Gloox 注册用户

改定履历 2011-09-09---------------------新建文本文档 引文: 调试GLOOX 1.0的注册功能颇费了一些功夫。总体逻辑如GLOOX自带的例...

gloox1.0中注册账号不成功的问题

前段时间研究gloox1.0版的注册,用官方自带的example,注册应该是很简单的例子,代码如下: 1: j = new Client( "pc-20110409pvwc" ); 2:...

C#108注册新用户 源代码

  • 2016年12月17日 10:40
  • 55KB
  • 下载

简单的注册新用户C#源代码

  • 2008年12月07日 15:29
  • 58KB
  • 下载

注册新用户(perl)

#!/usr/bin/perl use strict; use warnings; use Term::ReadPassword; #隐藏密码=pod 注册用户 passwd file ./...

新用户注册程序

  • 2007年10月22日 17:59
  • 88KB
  • 下载

selenium2java 一个利用mysql获取验证码注册新用户的测试用例

本人在学习selenium2java的时候,需要写一个注册模块的用例,想了一下决定用一个虚拟的手机号和mysql数据库直接进行注册流程,然后再去数据库把这个账号删了。实验了一下,感觉还不错。分享出来,...

ecshop_新用户注册自动发红包

  • 2016年04月22日 09:13
  • 572B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gloox不能注册新用户的问题
举报原因:
原因补充:

(最多只允许输入30个字)