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];
不然會出現 服務器拒絕訪問的錯誤