我使用jabber-net作为我的cmp应用程序的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,一旦客户端连接并且调用了login方法,它将自动调用OnAuthenticate的处理程序。
当我尝试发送消息时
private void button1_Click(object sender, EventArgs e)
{
this.chatOneJabberClient.Message("user2@test.com", this.textBox2.Text);
this.textBox2.Clear();
}
抛出无效的操作异常。用户必须先进行身份验证。
如果您需要任何其他信息,请与我们联系。
当jabberClient启动时,它调用OnWriteText methoda处理程序,我可以在聊天框中看到以下内容:
Send: <stream:stream xmlns:stream="http://etherx.jabber.org/streams" id="cb7f31d2" xmlns="jabber:client" to="test.com" version="1.0">
如果您需要任何进一步的信息,请告诉我。
答案 0 :(得分:0)
我想出了这个问题。
问题出在我的聊天服务器上。我正在使用apache vysper。我试图使用web-socket端点。在当前版本的vysper中,web-socket上没有太多活跃的开发。我把它改成了TcpEndPoint,一切都很好。 :)