Как отправлять ping-пакеты с использованием библиотеки jabber-net

1

Я разрабатываю клиентское приложение xmpp. Мне нужно отправить ping iq-пакеты на сервер xmpp, чтобы убедиться, что сервер все еще жив. Как я могу отправить его через библиотеку jabber-net? благодаря

Теги:
xmpp
openfire

1 ответ

1
Лучший ответ

Читайте 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 как обычно, для отправки запроса и получения уведомления об этом ответе.

  • 0
    спасибо ,, вчера сделали то же самое .... :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню