【问题标题】:How to implement chat functionality in windows phone 7如何在 windows phone 7 中实现聊天功能
【发布时间】:2013-03-22 14:34:32
【问题描述】:

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

【问题讨论】:

  • 嘿,你知道这段代码不起作用吗?????

标签: c# windows-phone-7 chat


【解决方案1】:

查看SignalR,了解基于网络的实时通信(包括聊天)。

有一个official sample for Windows Phone 8 和一个3rd party helper for WP7

【讨论】:

  • 嗨,马特..我已经放置了一些我正在处理的代码......如果我做得正确,请看看 n 回复我
  • 我在这里下载了代码:ag-software.de/matrix-xmpp-sdk/download(适用于 Windows 手机),我刚刚提供了我的凭据...Onerror 事件被触发...我不知道代码有什么问题
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-12
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    相关资源
    最近更新 更多