专业IM即时通讯软件开发,值得信赖!

agsxmpp 和 openfire 服务器 通信

openfire 云聊IM 153℃

如题, 一直做c#, 最近做openfire 开发,所以我选择 agsxmpp 做测试的客户端,以下是遇到的问题及解决方法

  • openfire  发送数据流  是通过 PLAIN 的 , 而 agsxmpp 是默认是 通过DIGEST-MD5 发送
  • openfire 发送iq节  不接收 to属性

解决方案

修改 agsxmpp 里的Mechanism.cs 里  

//case "DIGEST-MD5": //我加的 注释掉  case "DIGEST-MD5": 使plain 变为   默认设置
//return MechanismType.DIGEST_MD5;

注释 case “Digest-md5” ,从而把agsxmpp的 默认发式 改为 PLAIN

修改 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);
}
喜欢 (1)
仿微信聊天软件开发
点击这里给我发消息