1

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

2 回答 2

1

看看SignalR用于基于 Web 的实时通信(包括聊天)。

有一个适用于 Windows Phone 8 的官方示例,还有一个适用于 WP7 的 3rd party helper

于 2013-01-31T11:25:51.393 回答
0

在对 xmpp 进行任何操作之前,您首先需要设置 xmmp 类的 OnBind 事件。

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

于 2013-03-22T06:34:32.363 回答