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

原创
2016/05/25 14:56
阅读数 826

需要准备的资源:

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 即时通讯开发(二)【文件传输】

展开阅读全文
加载中

作者的其它热门文章

打赏
1
3 收藏
分享
打赏
1 评论
3 收藏
1
分享
返回顶部
顶部