streamhostprovider.java

来自「网站即时通讯系统」· Java 代码 · 共 74 行

JAVA
74
字号
package com.valhalla.jbother.jabber.smack.provider;import com.valhalla.jbother.jabber.smack.*;import org.jivesoftware.smack.provider.IQProvider;import org.jivesoftware.smack.packet.IQ;import org.xmlpull.v1.XmlPullParser;/** * Created by IntelliJ IDEA. * User: luke * Date: Jan 20, 2005 * Time: 10:48:16 AM * To change this template use Options | File Templates. *//** * this class implements a provider for <streamhost> and <streamhost-used> * packets. */public class StreamhostProvider implements IQProvider{  private static String fId = "$Id$";  public static final String NAMESPACE = "http://jabber.org/protocol/bytestreams";  public IQ parseIQ(XmlPullParser parser) throws Exception  {    boolean done = false;    int port = -1;    String host = "";    String jid = "";    boolean isStreamhostUsed = false;    String sid = parser.getAttributeValue("","sid");;    while (!done) {      int eventType = parser.next();      String elementName = parser.getName();      String namespace = parser.getNamespace();      if (eventType == XmlPullParser.START_TAG)      {        if (elementName.equals("streamhost"))        {          port = Integer.parseInt(parser.getAttributeValue("","port"));          host = parser.getAttributeValue("","host");          jid = parser.getAttributeValue("","jid");          isStreamhostUsed = false;        }        else if (elementName.equals("streamhost-used"))        {          jid = parser.getAttributeValue("","jid");          isStreamhostUsed = true;        }        else if (elementName.equals("fast") && namespace.equals("http://affinix.com/jabber/stream/"))        {          // other side is Psi          // (I don't know if we can use this information)        }      }      else if (eventType == XmlPullParser.END_TAG && elementName.equals("query")) {          done = true;      }    }    if (isStreamhostUsed == true) {      return new StreamhostUsed(jid);    } else {      return new Streamhost(port,host,jid,sid);    }  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?