如何使用jabber-net库发送ping包

本文关键字:ping 何使用 jabber-net | 更新日期: 2023-09-27 18:05:01

我正在开发一个xmpp客户机应用程序。我需要向xmpp服务器发送ping iq数据包,以确保服务器仍处于活动状态。如何通过jabber-net图书馆发送?由于

如何使用jabber-net库发送ping包

读取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发送请求并获得响应通知。