public DiscoItem AddDiscoItem() { DiscoItem item = new DiscoItem(); AddChild(item); return(item); }
public Service(DiscoItem discoItem, bool isToplevel) { _discoItem = discoItem; _isToplevel = isToplevel; if (_isToplevel) { Account.Instance.AddDiscoInfoPrioritized(_discoItem); _askedForDiscovery = true; } }
public DiscoItem[] GetDiscoItems() { var nl = SelectElements(typeof(DiscoItem)); var items = new DiscoItem[nl.Count]; var i = 0; foreach (Element e in nl) { items[i] = (DiscoItem)e; i++; } return(items); }
public DiscoItem[] GetDiscoItems() { ElementList nl = SelectElements(typeof(DiscoItem)); DiscoItem[] items = new DiscoItem[nl.Count]; int i = 0; foreach (Element e in nl) { items[i] = (DiscoItem) e; i++; } return items; }
public void AddDiscoItem(DiscoItem item) { AddChild(item); }
public DiscoItem AddDiscoItem() { DiscoItem item = new DiscoItem(); AddChild(item); return item; }
public static bool CompareDiscoItem( DiscoItem discoItem, DiscoItem discoItem2 ) { return Equals( discoItem.Jid, discoItem2.Jid ) && discoItem.Node == discoItem2.Node ; }
//RECIEVED: //<iq xmlns="jabber:client" id="agsXMPP_5" type="get" to="localhost"> // <query xmlns="http://jabber.org/protocol/disco#items" /> //</iq> //RESPONSE: //<iq xmlns="jabber:client" from="localhost" to="test@localhost/MF" type="result" id="agsXMPP_5"> // <query xmlns="http://jabber.org/protocol/disco#items"> // <item name="Coversant XMPP Administractive Gateway" jid="administration.localhost" /> // <item jid="administration.localhost" node="http://winfessor.com/protocol/administration/policy" /> // <item name="pubsub - Publish Subscribe Gateway" jid="pubsub.localhost" /> // <item name="Open S2S Sessions" jid="s2s.localhost" /> // <item name="conference - Multi User Chat" jid="conference.localhost" /> // <item name="SoapBox User Directory" jid="users.localhost" /> // <item name="jabber - Default Jabber Gateway" jid="localhost" /> // <item jid="localhost" node="http://jabber.org/protocol/commands" /> // </query> //</iq> private void ProcessDiscoItemsIQ(IQ iq) { DiscoItemsIq discoItemsIq = new DiscoItemsIq(IqType.result); discoItemsIq.Namespace = agsXMPP.Uri.CLIENT; discoItemsIq.Id = iq.Id; discoItemsIq.From = iq.To; discoItemsIq.To = this.m_ClientAccount.JID; ///*******此处为配置扩展****************** ///当前仅实现服务发现 ///*************************************** DiscoItem discoItem = null; foreach (BaseService service in this.m_Server.ServiceList) { discoItem = new DiscoItem(); discoItem.Name = service.Name; discoItem.Jid = service.JID; if (iq.To.Bare.ToLower().Contains(service.JID.Bare.ToLower())) { discoItemsIq.Query.RemoveAllChildNodes(); if (service.ServiceType == ServiceType.GroupChat) { MucService muc = service as MucService; if (service.JID.Bare.ToLower() == iq.To.Bare.ToLower()) { //<iq from='macbeth.shakespeare.lit' // id='disco2' // to='[email protected]/pda' // type='result'> // <query xmlns='http://jabber.org/protocol/disco#items'> // <item jid='*****@*****.**' // name='A Lonely Heath'/> // <item jid='*****@*****.**' // name='A Dark Cave'/> // <item jid='*****@*****.**' // name='The Palace'/> // <item jid='*****@*****.**' // name='Macbeth's Castle'/> // </query> //</iq> foreach (KeyValuePair<string, ChatRoom> item in muc.GetRooms()) { discoItem = new DiscoItem(); discoItem.Name = item.Key; discoItem.Jid = item.Value.JID; discoItemsIq.Query.AddDiscoItem(discoItem); } } else if (iq.To.Bare.ToLower().EndsWith("@" + service.JID.Bare.ToLower())) { } else { } } else if (service.ServiceType == ServiceType.ContactSearch) { } else if (service.ServiceType == ServiceType.FileTransfer) { } else { } break; } else { discoItemsIq.Query.AddDiscoItem(discoItem); } } Send(discoItemsIq); }
public RegisteredService(DiscoItem discoItem) : base(discoItem, false) { _askedForDiscovery = true; }
public static string GetKey(DiscoItem discoItem) { if (string.IsNullOrEmpty(discoItem.Node)) { return string.Format("{0}/", discoItem.Jid.ToString().ToLowerInvariant()); } else { return string.Format("{0}/{1}", discoItem.Jid.ToString().ToLowerInvariant(), discoItem.Node.ToLowerInvariant()); } }