0

Visual Studio 2010 を使用しており、OS は Windows 7、64 ビットです。私が取り組んでいるプロジェクトには、XMPP 機能が必要です。このために、agsXMPP ライブラリを使用しています。プロジェクト タイプは、xmpp コードの実行中にウィンドウを表示する WPF クライアントです。

開発を行っているのと同じ Windows システムで eJabberd 2.1.3 サーバーを実行しています。また、eJabberd サーバー上に複数のアカウント (「aaa@mydomain」、「bbb@mydomain」など) を作成し、それらを互いに「友達」にしました。

クライアントとの接続をテストするために、Windows で Pandion Jabber クライアントを使用し、Android で Xabber クライアントを同じネットワーク上で使用しています。セットアップは正常に機能しており、Xabber クライアントと Pandion クライアントは互いにメッセージを交換できます。干渉がないことを確認するために、ファイアウォールを一時的に無効にしました。

問題: プログラムを eJabberd サーバーに接続できません。ウィンドウがスローされると、他のクライアントにプレゼンスが表示されません。次のコードを使用しています。

    string uname = "aaa", domain_server = "mydomain", resource = "res1", password = "password";

    Jid jid = new Jid (uname, domain_server, resource);

    XmppClientConnection _xmppConn = new XmppClientConnection (jid.Server);

    // This is my development machine's IP address
    _xmppConn.ConnectServer = "192.168.0.101";

    _xmppConn.Server = domain_server;

    _xmppConn.Open (jid.User, password);

    // The event handlers:
    _xmppConn.OnLogin += new ObjectHandler (_xmppConn_OnLogin);
    _xmppConn.OnMessage += new agsXMPP.protocol.client.MessageHandler (_xmppConn_OnMessage);

    void _xmppConn_OnMessage (object sender, agsXMPP.protocol.client.Message msg) {
        MessageBox.Show (msg.Body);
    }

    void _xmppConn_OnLogin (object sender) {
        MessageBox.Show ("Logged in");
    }

別の FB アカウントからアカウントにメッセージを送信すると、同じコードが Facebook チャットで正常に機能します。

    string uname = "<my fb name>", domain_server = "facebook.com", resource = "res1", password = "<my password>";

    Jid jid = new Jid (uname, domain_server, resource);

    XmppClientConnection _xmppConn = new XmppClientConnection (jid.Server);

    _xmppConn.Server = "chat.facebook.com";

    _xmppConn.Open (jid.User, password);

    // The event handlers:
    _xmppConn.OnLogin += new ObjectHandler (_xmppConn_OnLogin);
    _xmppConn.OnMessage += new agsXMPP.protocol.client.MessageHandler (_xmppConn_OnMessage);

    void _xmppConn_OnMessage (object sender, agsXMPP.protocol.client.Message msg) {
        MessageBox.Show (msg.Body);
    }

    void _xmppConn_OnLogin (object sender) {
        MessageBox.Show ("Logged in");
    }

私は頭を悩ませてきましたが、どこが間違っているのかを理解することができません. 誰か助けてくれませんか?前もって感謝します。:)

4

3 に答える 3

0

非常に簡単なテストに基づいて、ConnectServer はホスト名を想定しており、IP アドレスを指定するとエラーがスローされると思います。

于 2015-08-05T09:10:37.523 に答える