当前位置: 首页>>代码示例>>Java>>正文


Java PacketParserUtils.parseStreamError方法代码示例

本文整理汇总了Java中org.jivesoftware.smack.util.PacketParserUtils.parseStreamError方法的典型用法代码示例。如果您正苦于以下问题:Java PacketParserUtils.parseStreamError方法的具体用法?Java PacketParserUtils.parseStreamError怎么用?Java PacketParserUtils.parseStreamError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.jivesoftware.smack.util.PacketParserUtils的用法示例。


在下文中一共展示了PacketParserUtils.parseStreamError方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testParsingOfSimpleStreamError

import org.jivesoftware.smack.util.PacketParserUtils; //导入方法依赖的package包/类
@Test
public void testParsingOfSimpleStreamError() {
    StreamError error = null;
    final String xml =
            // Usually the stream:stream element has more attributes (to, version, ...)
            // We omit those, since they are not relevant for testing
            "<stream:stream from='im.example.com' id='++TR84Sm6A3hnt3Q065SnAbbk3Y=' xmlns:stream='http://etherx.jabber.org/streams'>" +
            "<stream:error>" +
            "<conflict xmlns='urn:ietf:params:xml:ns:xmpp-streams' /> +" +
            "</stream:error>" +
            "</stream:stream>";
    try {
        XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error");
        error = PacketParserUtils.parseStreamError(parser);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    assertNotNull(error);
    assertEquals(Condition.conflict, error.getCondition());
}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:21,代码来源:StreamErrorTest.java

示例2: testParsingOfStreamErrorWithText

import org.jivesoftware.smack.util.PacketParserUtils; //导入方法依赖的package包/类
@Test
public void testParsingOfStreamErrorWithText() {
    StreamError error = null;
    final String xml =
            // Usually the stream:stream element has more attributes (to, version, ...)
            // We omit those, since they are not relevant for testing
            "<stream:stream from='im.example.com' id='++TR84Sm6A3hnt3Q065SnAbbk3Y=' xmlns:stream='http://etherx.jabber.org/streams'>" +
            "<stream:error>" +
            "<conflict xmlns='urn:ietf:params:xml:ns:xmpp-streams' />" +
            "<text xml:lang='' xmlns='urn:ietf:params:xml:ns:xmpp-streams'>" +
                "Replaced by new connection" +
            "</text>" +
            "</stream:error>" +
            "</stream:stream>";
    try {
        XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error");
        error = PacketParserUtils.parseStreamError(parser);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    assertNotNull(error);
    assertEquals(Condition.conflict, error.getCondition());
    assertEquals("Replaced by new connection", error.getDescriptiveText());
}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:25,代码来源:StreamErrorTest.java

示例3: testParsingOfStreamErrorWithTextAndOptionalElement

import org.jivesoftware.smack.util.PacketParserUtils; //导入方法依赖的package包/类
@Test
public void testParsingOfStreamErrorWithTextAndOptionalElement() {
    StreamError error = null;
    final String xml =
            // Usually the stream:stream element has more attributes (to, version, ...)
            // We omit those, since they are not relevant for testing
            "<stream:stream from='im.example.com' id='++TR84Sm6A3hnt3Q065SnAbbk3Y=' xmlns:stream='http://etherx.jabber.org/streams'>" +
            "<stream:error>" +
            "<conflict xmlns='urn:ietf:params:xml:ns:xmpp-streams' />" +
            "<text xml:lang='' xmlns='urn:ietf:params:xml:ns:xmpp-streams'>" +
                "Replaced by new connection" +
            "</text>" +
            "<appSpecificElement xmlns='myns'>" +
                "Text contents of application-specific condition element: Foo Bar" +
            "</appSpecificElement>" +
            "</stream:error>" +
            "</stream:stream>";
    try {
        XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error");
        error = PacketParserUtils.parseStreamError(parser);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    assertNotNull(error);
    assertEquals(Condition.conflict, error.getCondition());
    assertEquals("Replaced by new connection", error.getDescriptiveText());
    ExtensionElement appSpecificElement = error.getExtension("appSpecificElement", "myns");
    assertNotNull(appSpecificElement);
}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:30,代码来源:StreamErrorTest.java

示例4: responseReceived

import org.jivesoftware.smack.util.PacketParserUtils; //导入方法依赖的package包/类
/**
 * Parse the received packets and notify the corresponding connection.
 *
 * @param event the BOSH client response which includes the received packet.
 */
public void responseReceived(BOSHMessageEvent event) {
    AbstractBody body = event.getBody();
    if (body != null) {
        try {
            if (sessionID == null) {
                sessionID = body.getAttribute(BodyQName.create(XMPPBOSHConnection.BOSH_URI, "sid"));
            }
            if (streamId == null) {
                streamId = body.getAttribute(BodyQName.create(XMPPBOSHConnection.BOSH_URI, "authid"));
            }
            final XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
            parser.setInput(new StringReader(body.toXML()));
            int eventType = parser.getEventType();
            do {
                eventType = parser.next();
                switch (eventType) {
                case XmlPullParser.START_TAG:
                    String name = parser.getName();
                    switch (name) {
                    case Message.ELEMENT:
                    case IQ.IQ_ELEMENT:
                    case Presence.ELEMENT:
                        parseAndProcessStanza(parser);
                        break;
                    case "challenge":
                        // The server is challenging the SASL authentication
                        // made by the client
                        final String challengeData = parser.nextText();
                        getSASLAuthentication().challengeReceived(challengeData);
                        break;
                    case "success":
                        send(ComposableBody.builder().setNamespaceDefinition("xmpp",
                                        XMPPBOSHConnection.XMPP_BOSH_NS).setAttribute(
                                        BodyQName.createWithPrefix(XMPPBOSHConnection.XMPP_BOSH_NS, "restart",
                                                        "xmpp"), "true").setAttribute(
                                        BodyQName.create(XMPPBOSHConnection.BOSH_URI, "to"), getServiceName()).build());
                        Success success = new Success(parser.nextText());
                        getSASLAuthentication().authenticated(success);
                        break;
                    case "features":
                        parseFeatures(parser);
                        break;
                    case "failure":
                        if ("urn:ietf:params:xml:ns:xmpp-sasl".equals(parser.getNamespace(null))) {
                            final SASLFailure failure = PacketParserUtils.parseSASLFailure(parser);
                            getSASLAuthentication().authenticationFailed(failure);
                        }
                        break;
                    case "error":
                        throw new StreamErrorException(PacketParserUtils.parseStreamError(parser));
                    }
                    break;
                }
            }
            while (eventType != XmlPullParser.END_DOCUMENT);
        }
        catch (Exception e) {
            if (isConnected()) {
                notifyConnectionError(e);
            }
        }
    }
}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:70,代码来源:XMPPBOSHConnection.java

示例5: responseReceived

import org.jivesoftware.smack.util.PacketParserUtils; //导入方法依赖的package包/类
/**
 * Parse the received packets and notify the corresponding connection.
 * 
 * @param event the BOSH client response which includes the received packet.
 */
public void responseReceived(BOSHMessageEvent event) {
    AbstractBody body = event.getBody();
    if (body != null) {
        try {
            if (connection.sessionID == null) {
                connection.sessionID = body.getAttribute(BodyQName.create(BOSHConnection.BOSH_URI, "sid"));
            }
            if (connection.authID == null) {
                connection.authID = body.getAttribute(BodyQName.create(BOSHConnection.BOSH_URI, "authid"));
            }
            final XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES,
                    true);
            parser.setInput(new StringReader(body.toXML()));
            int eventType = parser.getEventType();
            do {
                eventType = parser.next();
                if (eventType == XmlPullParser.START_TAG) {
                    if (parser.getName().equals("body")) {
                        // ignore the container root element
                    } else if (parser.getName().equals("message")) {
                        connection.processPacket(PacketParserUtils.parseMessage(parser));
                    } else if (parser.getName().equals("iq")) {
                        connection.processPacket(PacketParserUtils.parseIQ(parser, connection));
                    } else if (parser.getName().equals("presence")) {
                        connection.processPacket(PacketParserUtils.parsePresence(parser));
                    } else if (parser.getName().equals("challenge")) {
                        // The server is challenging the SASL authentication
                        // made by the client
                        final String challengeData = parser.nextText();
                        connection.getSASLAuthentication()
                                .challengeReceived(challengeData);
                        connection.processPacket(new Challenge(
                                challengeData));
                    } else if (parser.getName().equals("success")) {
                        connection.send(ComposableBody.builder()
                                .setNamespaceDefinition("xmpp", BOSHConnection.XMPP_BOSH_NS)
                                .setAttribute(
                                        BodyQName.createWithPrefix(BOSHConnection.XMPP_BOSH_NS, "restart", "xmpp"),
                                        "true")
                                .setAttribute(
                                        BodyQName.create(BOSHConnection.BOSH_URI, "to"),
                                        connection.getServiceName())
                                .build());
                        connection.getSASLAuthentication().authenticated();
                        connection.processPacket(new Success(parser.nextText()));
                    } else if (parser.getName().equals("features")) {
                        parseFeatures(parser);
                    } else if (parser.getName().equals("failure")) {
                        if ("urn:ietf:params:xml:ns:xmpp-sasl".equals(parser.getNamespace(null))) {
                            final Failure failure = PacketParserUtils.parseSASLFailure(parser);
                            connection.getSASLAuthentication().authenticationFailed();
                            connection.processPacket(failure);
                        }
                    } else if (parser.getName().equals("error")) {
                        throw new XMPPException(PacketParserUtils.parseStreamError(parser));
                    }
                }
            } while (eventType != XmlPullParser.END_DOCUMENT);
        }
        catch (Exception e) {
            if (connection.isConnected()) {
                connection.notifyConnectionError(e);
            }
        }
    }
}
 
开发者ID:CJC-ivotten,项目名称:androidPN-client.,代码行数:73,代码来源:BOSHPacketReader.java


注:本文中的org.jivesoftware.smack.util.PacketParserUtils.parseStreamError方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。