【发布时间】:2014-07-29 02:45:53
【问题描述】:
我正在尝试制作自己的 XMPP 客户端,我正在使用 Matrix SDK 作为 XMPP 库。我已经建立了自己的 eJabberd 服务器并将其与 MYSQL 集成。我可以成功地与客户建立联系。我还可以使用 Matrix SDK 在控制台应用程序中成功连接。但是当我尝试使用 Windows 表单应用程序 on_Click 事件时,它会向服务器发送请求但没有登录。我可以在日志中看到。
这是我的连接类
namespace WindowsFormsApplication1
{
class Connection
{
public string ConnectionStatus;
XmppClient xmppClient = new XmppClient();
public Connection()
{
ConnectionStatus = "Connecting";
xmppClient.Compression = false;
xmppClient.Hostname = null;
xmppClient.StartTls = true;
xmppClient.Status = "Online";
xmppClient.Password = "123456";
xmppClient.Username = "xeeshan";
xmppClient.Hostname = "rabta.cloudapp.net";
xmppClient.Port.Equals(5222);
xmppClient.OnLogin += new EventHandler<Matrix.EventArgs>(xmpp_OnLogin);
}
private void xmpp_OnLogin(object sender, Matrix.EventArgs e)
{
xmppClient.Status = "I'm chatty";
xmppClient.Show = Matrix.Xmpp.Show.chat;
}
public void Open()
{
xmppClient.OnLogin += new EventHandler<Matrix.EventArgs>(xmpp_OnLogin);
try
{
xmppClient.Open();
Thread.Sleep(8000);
}
catch
{
ConnectionStatus = "Not Connected";
}
}
}
}
我的窗体应用程序点击事件
private void button1_Click(object sender, System.EventArgs e)
{
Connection conn = new Connection();
conn.Open();
}
这是来自我的 ejabberd 服务器日志。每次点击按钮时插入一行。
=INFO REPORT==== 2014-07-21 20:32:18 ===
I(<0.430.0>:ejabberd_listener:281) : (#Port<0.3742>) Accepted connection {{182,187,194,83},11511} -> {{100,77,176,105},5222}
=INFO REPORT==== 2014-07-21 20:33:37 ===
I(<0.430.0>:ejabberd_listener:281) : (#Port<0.3744>) Accepted connection {{182,187,194,83},11523} -> {{100,77,176,105},5222}
=INFO REPORT==== 2014-07-21 20:35:11 ===
I(<0.430.0>:ejabberd_listener:281) : (#Port<0.3746>) Accepted connection {{182,187,194,83},11538} -> {{100,77,176,105},5222}
=INFO REPORT==== 2014-07-21 21:16:55 ===
I(<0.430.0>:ejabberd_listener:281) : (#Port<0.3748>) Accepted connection {{182,187,194,83},12779} -> {{100,77,176,105},5222}
请帮帮我,我在过去三天左右被困在这个问题上。
【问题讨论】: