0

C# アプリケーションで xmpp チャット クライアントとして jabber-net を使用しています。私が使用しているチャット サーバーは 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();
    }      

しかし、ここで提供されているドキュメントから私が理解しているのは、クライアントが接続されてログインメソッドが呼び出されると、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">

さらに情報が必要な場合はお知らせください。

4

1 に答える 1