📄 streamhostprovider.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -