首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >agsXMPP OnLogin事件未触发Asp.Net

agsXMPP OnLogin事件未触发Asp.Net
EN

Stack Overflow用户
提问于 2014-04-06 21:42:13
回答 2查看 1.2K关注 0票数 0

我试图在agsXMPP GTalk聊天客户端做Asp.Net,但是OnLogin事件根本没有做任何事情,我尝试过这么多事情.

有人能帮帮我吗?

下面是aspx.cs文件的代码:

代码语言:javascript
复制
using System;
...

using agsXMPP;
using agsXMPP.protocol.client;
using agsXMPP.Collections;
using agsXMPP.protocol.iq.roster;
using System.Threading;

using Microsoft.Win32;

public partial class ChatClient : System.Web.UI.Page
{
    private agsXMPP.XmppClientConnection xmppCC = new XmppClientConnection();

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    void xmpp_OnLogin(object sender)
    {
        lblMsg.Text = "Succes!" + xmppCC.Authenticated.ToString();
        xmppCC.SendMyPresence();
    }

    string emailAdres; string password;
    protected void cmdLogin_Click(object sender, EventArgs e)
    {
        emailAdres = textEmail.Text; password= textPassw.Text;

        xmppCC = (XmppClientConnection)Application["xmpp"];
        if (xmppCC == null)
        {
            xmppCC = new XmppClientConnection();
            Application["xmpp"] = xmppCC;
        }

        Jid jidSender = new Jid(emailAdres);

        xmppCC.Username = jidSender.User;
        xmppCC.Server = jidSender.Server;
        xmppCC.Password = password;
        xmppCC.AutoResolveConnectServer = true;

        try
        {
            xmppCC.OnLogin += xmpp_OnLogin;
            lblMsg.Text = "";
            xmppCC.Open();
        }
        catch (Exception ex)
        {
            lblMsg.Text = ex.Message;
        }
    }
}

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-07 06:46:45

xmppCC.Server并不总是等于jidSender.Server,要自动解析Server,请尝试如下:

代码语言:javascript
复制
    emailAdres = textEmail.Text; password= textPassw.Text;
    xmppCC = (XmppClientConnection)Application["xmpp"];
    Jid jidSender = new Jid(emailAdres);
    if (xmppCC == null)
    {
        xmppCC = new XmppClientConnection(jidSender.Server);
        Application["xmpp"] = xmppCC;
    }


    // xmppCC.Username = jidSender.User;
    // xmppCC.Server = jidSender.Server; it will be resolved with AutoResolveConnectServer = true
    // xmppCC.Password = password;
    xmppCC.AutoResolveConnectServer = true;

    xmppCC.OnLogin += s => Debug.WriteLine("Logged in");
    xmppCC.Open(jidSender.User, password);
票数 2
EN

Stack Overflow用户

发布于 2014-04-10 19:57:17

我建议将它与像SignalR这样的实时HTTP通道结合起来。还请看我的博客文章:http://www.ag-software.net/2012/08/20/web-clients-with-matrix-and-signalr/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22900392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档