jabber-net onAuthenticated 没有被调用

Posted

技术标签:

【中文标题】jabber-net onAuthenticated 没有被调用【英文标题】:jabber-net onAuthenticated doesn't get called 【发布时间】:2013-12-04 11:46:00 【问题描述】:

我使用 jabber-net 作为带有 C# 应用程序的 xmpp 聊天客户端。我使用的聊天服务器是 apache vysper 0.7

我使用以下代码创建了聊天客户端。

 private void ChatOne_Load(object sender, EventArgs e)
    
        JID jid = new JID("user1@test.com");
        this.chatOneJabberClient.User = jid.User;
        this.chatOneJabberClient.Server = jid.Server;
        this.chatOneJabberClient.Password = "password1";
        //this.chatOneJabberClient.AutoPresence = false;
        //this.chatOneJabberClient.AutoRoster = false;
        //this.chatOneJabberClient.AutoReconnect = -1;
        this.chatOneJabberClient.OnAuthenticate += chatOneJabberClient_OnAuthenticate;
        this.chatOneJabberClient.OnError += chatOneJabberClient_OnError;
        this.chatOneJabberClient.OnReadText += chatOneJabberClient_OnReadText;
        this.chatOneJabberClient.OnWriteText += chatOneJabberClient_OnWriteText;
        this.chatOneJabberClient.Connect();
        this.chatOneJabberClient.Login();
        //done.WaitOne();
          

但我从文档中了解到here 是,一旦客户端连接并调用登录方法,它将自动调用 OnAuthenticate 的处理程序。

当我尝试发送消息时

private void button1_Click(object sender, EventArgs e)
    
        this.chatOneJabberClient.Message("user2@test.com", this.textBox2.Text);
        this.textBox2.Clear();
    

抛出无效操作异常。用户必须先通过身份验证。

如果您需要任何其他信息,请告诉我。

当 jabberClient 启动时,它调用 OnWriteText 方法处理程序,我可以在我的聊天框中看到以下内容:

Send: <stream:stream xmlns:stream="http://etherx.jabber.org/streams" id="cb7f31d2" xmlns="jabber:client" to="test.com" version="1.0">

如果您需要任何进一步的信息,请告诉我。

【问题讨论】:

【参考方案1】:

我发现了这个问题。

问题出在我的聊天服务器上。我正在使用 apache vysper。我试图使用 web-socket 端点。在当前版本的 vysper 中,web-socket 上没有太多积极的开发。我将其更改为 TcpEndPoint,一切都很好。 :)

【讨论】:

以上是关于jabber-net onAuthenticated 没有被调用的主要内容,如果未能解决你的问题,请参考以下文章

Jabber-net 注册新用户

如何使用 jabber-net 获取消息历史记录(消息归档)

如何使用 Jabber-net 库实现 XEP-0012

Jabber-net 名册树错误

Jabber-net 客户端突然停止工作

jabber-net 和 vysper 消息广播工具