C#XMPP jabber-net无法发送消息

问题描述

我最近开始从事一个小型项目,该项目需要C#下的XMPP客户端,我发现可以免费使用的jabber-net库

“用户为test2”

这是我的客户代码

    public static JabberClient jabberClient;
    static void Connect(string ip,string username,string pasword)
    {
        try
        {
            jabberClient = new JabberClient();
            jabberClient.User = username;
            jabberClient.Password = pasword;
            jabberClient.Server = ip;
            jabberClient.Port = 5223;
            jabberClient.AutoReconnect = -1;
            jabberClient.AutoPresence = true; //note that a deadloc3 can occur if this is set to true
            jabberClient.AutoRoster = false;
            jabberClient.SSL = true;
            jabberClient.PlaintextAuth = true;
            jabberClient.AutoStartCompression = true;
            jabberClient.AutoStartTLS = false;
            jabberClient.AutoLogin = true;
            jabberClient.Resource = "In Game";
            Console.WriteLine(jabberClient.JID);
            Console.WriteLine(jabberClient.IsAuthenticated);
            jabberClient.OnMessage += JabberClient_OnMessage;
            jabberClient.OnInvalidCertificate += JabberClient_OnInvalidCertificate;
            jabberClient.OnAuthError += JabberClient_OnAuthError;
            jabberClient.Connect();
            jabberClient.Message(JabberNet.jabber.protocol.client.MessageType.chat,"lanpingner@10.6.1.69","i am online");  // The Error is here        
            
        }
        catch (Exception e3)
        {
            Console.WriteLine(e3.Message);
        }

    }


    private static void JabberClient_OnAuthError(object sender,System.Xml.XmlElement rp)
    {
       // Console.WriteLine(rp.InnerText);
    }

    private static void JabberClient_OnError(object sender,Exception ex)
    {
        Console.WriteLine(ex.Message);
    }

    private static bool JabberClient_OnInvalidCertificate(object sender,System.Security.Cryptography.X509Certificates.X509Certificate certificate,System.Security.Cryptography.X509Certificates.X509Chain chain,System.Net.Security.SslPolicyErrors sslPolicyErrors)
    {
    //    Console.WriteLine("Invalid certificate ({0}):\n{1}",sslPolicyErrors.ToString(),certificate.ToString(true));
        
        return true;
    }

    private static void JabberClient_OnMessage(object sender,JabberNet.jabber.protocol.client.Message msg)
    {
        //throw new NotImplementedException();
            Console.WriteLine($"New Message from {msg.From.Bare},{msg.Body}");
    
        
    }

当我尝试从其他客户端发送或接收消息时,它不起作用,并且出现此错误,

在发送消息之前,必须先对客户端进行身份验证。

但是服务器可以将发送消息发送给客户端,而我可以接收它。

但是,如果我转到XMPP服务器站点“ Openfire”,则需要对用户进行验证和认证。

enter image description here

到目前为止我尝试过的事情

  1. 尝试手动登录
  2. 不尝试SSL

如果有人使用该库,我将不胜感激,但是如果您可以建议一个不起作用的库,我也将不胜感激。 请不要建议我不想为它付费的矩阵

感谢任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...