agsXMPP + Openfore 即时通讯开发(一)【agsXMPP 连接 Openfire】

需要准备的资源:

1、Openfire

2、agsXMPP (因为我一直在做NET开发,所以agsXMPP方便一些)

Start:

1、环境搭建 Openfire 安装 (文章一搜一大堆,就不在这里废话了)

2、agsXMPP 链接 Openfire (我照着链接的文章中的方法修改agsXMPP的MiniClient,最后连接成功了)

文章中有一个地方需要注意

2.修改 agsxmpp IqGrabber.cs 里的 public void SendIq(IQ iq, IqCB cb, object cbArg) 函数

public void SendIq(IQ iq, IqCB cb, object cbArg)
{
            // check if the callback is null, in case of wrong usage of this class
            if (cb != null)
            {
                TrackerData td = new TrackerData();
                td.cb = cb;
                td.data = cbArg;

                m_grabbing[iq.Id] = td;

                //我加的代码  iq在agsxmpp中发送Iq节的时候先iq.RemoveAttribute("to")
                iq.RemoveAttribute("to");
            }
         m_connection.Send(iq);
}

这里的这个方法如果按照以上的方法这个样改的话,agsXMPP可以连接Openfire进行用户登陆了没错,但是在其他地方需要调用到这个方法的地方就全都不能用了。也就是说登录情况下调用的发送xml的方法应该去掉“to”标签,而其他的都需要存在“to”标签。 正确的改法如下:

public void SendIq(IQ iq, IqCB cb, object cbArg)
{
            // check if the callback is null, in case of wrong usage of this class
            if (cb != null)
            {
                TrackerData td = new TrackerData();
                td.cb = cb;
                td.data = cbArg;

                m_grabbing[iq.Id] = td;

                //我加的代码  iq在agsxmpp中发送Iq节的时候先iq.RemoveAttribute("to")
                iq.RemoveAttribute("to");
            }
         m_connection.Send(iq);
}

public void SendIq2(IQ iq, IqCB cb, object cbArg)
{
            // check if the callback is null, in case of wrong usage of this class
            if (cb != null)
            {
                TrackerData td = new TrackerData();
                td.cb = cb;
                td.data = cbArg;

                m_grabbing[iq.Id] = td;

                //我加的代码  iq在agsxmpp中发送Iq节的时候先iq.RemoveAttribute("to")
                //iq.RemoveAttribute("to");
            }
         m_connection.Send(iq);
}

登录操作:发送xml消息用 SendIq() 方法

其他操作:发送xml消息用 SendIq2() 方法

至此两个用户已经能够通过MiniClient进行聊天了

下篇文章内容为 agsXMPP + Openfire 即时通讯开发(二)【文件传输】

转载于:https://my.oschina.net/knife2013/blog/681030

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值