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");
}
私は頭を悩ませてきましたが、どこが間違っているのかを理解することができません. 誰か助けてくれませんか?前もって感謝します。:)