为什么我无法在agsXMPP中连接到Google Talk?

时间:2010-07-09 22:25:36

标签: mono xmpp agsxmpp

我正在尝试开始使用agsXMPP,但我遇到了一些问题。我正在尝试运行此代码:

using System;
using agsXMPP;

namespace TestAgs
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            XmppClientConnection connection = new XmppClientConnection ();
            connection.OnLogin += delegate {
                Console.WriteLine ("logged in");
            };
            connection.Server = "gmail.com";
            connection.ConnectServer = "talk.google.com";
            connection.Username = "my username"; // I tried both with and without '@gmail.com'
            connection.Password = "my password";
            connection.Open();
        }
    }
}

这编译很好,但是当我尝试运行它时,没有任何反应。它运行并完成没有任何错误,但“登录”永远不会打印到控制台。我做错了什么?

如果它有所不同,我在Ubuntu 10.04上使用Mono 2.4。

4 个答案:

答案 0 :(得分:4)

除非connection.Open()阻止,我怀疑,问题是你的程序遇到了main的结尾,因此它已经完成运行并结束。

如何防止它退出取决于你想要做什么,但一种方法是手动重置事件:

var mre = new System.Threading.ManualResetEvent (false);
mre.WaitOne ();

当然,现在您可能遇到相反的问题,您的应用无法完成。

答案 1 :(得分:1)

我认为问题是端口号。您没有在连接中提供5222或5223.

答案 2 :(得分:1)

只需添加Console.ReadLine();在行'connection.Open();'之后

答案 3 :(得分:0)

// connection.Server = "gmail.com";
connection.ConnectServer = "talk3.l.google.com"; OR
connection.ConnectServer = "talk2.l.google.com";
connection.Username = "my username"; // I tried both with and without '@gmail.com'
connection.Password = "my password";
connection.Open();

talk3.l.google对我来说很好。