如何使用c#在XMPP服务器上创建一个使用jabber网的新用户

本文关键字:一个 jabber 用户 新用户 何使用 XMPP 服务器 创建 | 更新日期: 2023-09-27 18:11:50

我在c#中使用jabber.net库创建/注册新用户时遇到了困难。我使用ejabberd作为服务器。下面是我的代码:

 private void btnCreateAccount_Click(object sender, EventArgs e)
    {
        IQ iq1 = new IQ(jabberClient1.Document);
        iq1.ID = "reg1";
        iq1.Type = IQType.set;
        iq1.InnerXml = "<query xmlns='jabber:iq:register'></query>";
        jabberClient1.Tracker.BeginIQ(iq1, new jabber.connection.IqCB(on_create_user), null);

        IQ iq = new IQ(jabberClient1.Document);
        iq.ID = "reg2";
        iq.Type = IQType.set;
        iq.InnerXml = "<query xmlns='jabber:iq:register'><username>hax0r</username><password>god</password></query>";
        jabberClient1.Tracker.BeginIQ(iq, new jabber.connection.IqCB(on_create_user), null);
    }
    private void on_create_user(object sender, IQ iq, object data)
    {
        Error err = iq.Error;
        if (err != null)
            Console.WriteLine("Error " + err.Condition + " on querying user " + data);
    }
当我运行上面的代码时,c#抛出一个错误:

异常:抛出:"对象引用未设置为类的实例对象。"(System.NullReferenceException)系统。抛出NullReferenceException: "对象引用未设置为。对象的实例。"

我做错了什么?如有任何帮助,不胜感激。

我仍然很困惑如何在c#中用jabber.net创建一个新用户。我做了以下操作,但还没有成功:

 JabberClient jc = new jabber.client.JabberClient(this.components);
 jc.AutoReconnect = 3F;
 jc.AutoStartCompression = true;
 jc.AutoStartTLS = true;
 jc.InvokeControl = this;
 jc.KeepAlive = 30F;
 jc.LocalCertificate = null;
 jc.Password = "username";
 jc.User = "password";
 jc.Server = "example.com";
 jc.Register(new JID(jc.User, jc.Server, null));

如何使用c#在XMPP服务器上创建一个使用jabber网的新用户

请查看示例目录。cs完全符合您的要求。特别是,第764行的Register调用,然后是OnRegisterInfoOnRegistered的回调。

相关文章: