我想在WP7中实现一个简单的在线聊天应用程序。 我正在使用Matrix SDK在我的WP7上实现聊天 这是我尝试连接的方式,但我无法连接和发送任何消息。 事件都没有被解雇..我也没有得到任何例外...... 我做错了什么???? 请指导我
提前致谢
XmppClient xmppConn;
xmppConn = new XmppClient();
Jid jidUser = new Jid("username");
xmppConn.Username = jidUser.User;
xmppConn.Password = "password";
xmppConn.SetXmppDomain(jidUser.Server);
xmppConn.Uri = new System.Uri("http://server.com:7070/http-bind/",UriKind.RelativeOrAbsolute);
xmppConn.Status = "Testing on Windows Phone 7";
xmppConn.Show = Matrix.Xmpp.Show.Chat;
try
{
xmppConn.Open();
xmppConn.OnLogin += new EventHandler<Matrix.EventArgs>(xmppConn_OnLogin);
//xmppConn.OnPresence += new EventHandler<PresenceEventArgs>(xmppConn_OnPresence);
// xmpp.OnLogin += new EventHandler<Matrix.EventArgs>(xmpp_OnLogin);
}
catch
{
Console.WriteLine("Wrong login data!");
}
}
private void SendButton_Click(object sender, System.EventArgs e)
{
// loose focus to hide keyboard
this.Focus();
messages.Add(new ChatMessage()
{
Side = MessageSide.Me,
Text = TextInput.Text
});
var pm = new PresenceManager(xmppConn);
string sub_id = "xxxxxxxxx";
Jid jid = sub_id;
pm.Subscribe(jid);
xmppConn.Send(new Message(new Jid(jid), MessageType.chat, TextInput.Text));
xmppConn.OnMessage += new EventHandler<MessageEventArgs>(xmppConn_OnMessage);
TextInput.Text = "";
}
答案 0 :(得分:1)
查看SignalR进行实时网络通讯(包括聊天)。
有official sample for Windows Phone 8和3rd party helper for WP7。
答案 1 :(得分:0)
在对xmpp做任何事情之前,首先需要设置xmmp类的OnBind事件。
原因:大多数xmpp异步工作。当你调用client.Open之类的东西时,它会立即返回,所以你首先需要等待OnBind事件。