如何在Windows Phone 7中实现聊天功能

时间:2013-01-31 09:29:31

标签: c# windows-phone-7 chat

我想在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 = "";
    }

2 个答案:

答案 0 :(得分:1)

查看SignalR进行实时网络通讯(包括聊天)。

official sample for Windows Phone 83rd party helper for WP7

答案 1 :(得分:0)

在对xmpp做任何事情之前,首先需要设置xmmp类的OnBind事件。

原因:大多数xmpp异步工作。当你调用client.Open之类的东西时,它会立即返回,所以你首先需要等待OnBind事件。