agsxmpp client 连接openfire
agsxmpp 连接openfire
需修改源代码如下:
1. 修改 agsxmpp 里的Mechanism.cs 里
//case "DIGEST-MD5": //注释掉 case "DIGEST-MD5": 使plain 变为 默认设置
//return MechanismType.DIGEST_MD5;
注释 case “Digest-md5” ,从而把agsxmpp的 默认发式 改为 PLAIN
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);
}
3.openfire XMPP办事器默认只监听IPV4的地址,而agsxmpp连接办事器时辰选择的是IPV6版本的地址
修改ClientSocket.cs里的 IPAddress ipAddress =ipHostInfo.AddressList[0]; 改为 IPAddress ipAddress = ipHostInfo.AddressList[2];
不然会出现 服务器拒绝访问的错误
补充:软件开发 , C# ,