Я разрабатываю клиентское приложение xmpp. Мне нужно отправить ping iq-пакеты на сервер xmpp, чтобы убедиться, что сервер все еще жив. Как я могу отправить его через библиотеку jabber-net? благодаря
Читайте FAQ_Packets и XEP -0199. Установите NS на urn:xmpp:ping
. Что-то вроде:
namespace your.protocol
{
public class PingQuery : Element
{
public const string PING_NS = "urn:xmpp:ping";
// used when creating elements to send
public PingQuery(XmlDocument doc) : base("ping", PING_NS, doc)
{}
// used to create elements for inbound protocol
public PingQuery(string prefix, XmlQualifiedName qname, XmlDocument doc)
: base(prefix, qname, doc)
{}
}
public class Factory : jabber.protocol.IPacketTypes
{
private static QnameType[] s_qnt = new QnameType[]
{
new QnameType("ping", PingQuery.PING_NS, typeof(your.protocol.PingQuery))
};
QnameType[] IPacketTypes.Types { get { return s_qnt; } }
}
}
Затем используйте что-то вроде:
private void jabberClient_OnStreamInit(object sender, ElementStream stream)
{
stream.AddFactory(new your.protocol.Factory());
}
чтобы зацепить ваш завод. Затем используйте IQTracker
как обычно, для отправки запроса и получения уведомления об этом ответе.