public DiscoIdentity AddIdentity() { DiscoIdentity id = new DiscoIdentity(); AddChild(id); return(id); }
public DiscoIdentity[] GetIdentities() { var nl = SelectElements(typeof(DiscoIdentity)); var items = new DiscoIdentity[nl.Count]; var i = 0; foreach (Element e in nl) { items[i] = (DiscoIdentity)e; i++; } return(items); }
public void AddIdentity(DiscoIdentity id) { AddChild(id); }
//SEND: //<iq xmlns="jabber:client" id="agsXMPP_11" type="get" to="users.localhost"> // <query xmlns="http://jabber.org/protocol/disco#info" /> //</iq> // //RECV: //<iq xmlns="jabber:client" from="users.localhost" to="test@localhost/MF" type="result" id="agsXMPP_11"> // <query xmlns="http://jabber.org/protocol/disco#info"> // <feature var="jabber:iq:time" /> // <feature var="jabber:iq:search" /> // <feature var="http://jabber.org/protocol/disco#info" /> // <feature var="jabber:iq:version" /> // <feature var="soapbox:limits" /> // <feature var="http://jabber.org/protocol/disco#items" /> // <identity name="SoapBox User Directory" category="directory" type="user" /> // </query> //</iq> private void ProcessDiscoInfoIQ(IQ iq) { agsXMPP.protocol.iq.disco.DiscoInfoIq discoInfoIq = new DiscoInfoIq(IqType.result); discoInfoIq.Namespace = agsXMPP.Uri.CLIENT; discoInfoIq.Id = iq.Id; discoInfoIq.From = iq.To; discoInfoIq.To = this.m_ClientAccount.JID; ///*******此处为配置扩展****************** ///当前仅实现服务查找 ///*************************************** //RECV: //<iq xmlns="jabber:client" id="agsXMPP_8" type="get" to="[email protected]"> // <query xmlns="http://jabber.org/protocol/disco#info" /> //</iq> //SEND: //<iq xmlns="jabber:client" type="result" id="agsXMPP_6" from="Search.SiteView.com" to="[email protected]:SiteView"> // <query xmlns="http://jabber.org/protocol/disco#info"> // <feature var="jabber:iq:time"/> // <feature var="jabber:iq:search"/> // <feature var="http://jabber.org/protocol/disco#info"/> // <feature var="jabber:iq:version"/> // <feature var="http://jabber.org/protocol/disco#items"/> // <identity type="user" name="Site View MF Directory" category="Search"/> // </query> //</iq> // <iq from='proxy.cachet.myjabber.net' to='[email protected]/Exodus' type='result' id='jcl_19'> // <query xmlns='http://jabber.org/protocol/disco#info'> // <identity category='proxy' name='SOCKS5 Bytestreams Service' type='bytestreams'/> // <feature var='http://jabber.org/protocol/bytestreams'/> // <feature var='http://jabber.org/protocol/disco#info'/> // </query> // </iq> System.Collections.Generic.List<string> vars = new System.Collections.Generic.List<string>(); DiscoIdentity identity = null; foreach (BaseService service in this.m_Server.ServiceList) { if (!iq.To.Bare.ToLower().Contains(service.JID.Bare.ToLower())) { continue; } identity = new DiscoIdentity(service.ServiceType.ToString(), service.Name, service.ServiceType.ToString()); if (service.ServiceType == ServiceType.ContactSearch) { vars.Add(agsXMPP.Uri.IQ_SEARCH); } else if (service.ServiceType == ServiceType.GroupChat) { vars.Add(agsXMPP.Uri.MUC); } else if (service.ServiceType == ServiceType.FileTransfer) { vars.Add(agsXMPP.Uri.BYTESTREAMS); } else { } break; } DiscoFeature feature = null; foreach (string var in vars) { feature = new DiscoFeature(var); discoInfoIq.Query.AddFeature(feature); } discoInfoIq.Query.AddIdentity(identity); Send(discoInfoIq); }
public DiscoIdentity[] GetIdentities() { ElementList nl = SelectElements(typeof(DiscoIdentity)); DiscoIdentity[] items = new DiscoIdentity[nl.Count]; int i = 0; foreach (Element e in nl) { items[i] = (DiscoIdentity) e; i++; } return items; }
public DiscoIdentity AddIdentity() { DiscoIdentity id = new DiscoIdentity(); AddChild(id); return id; }