小编B.A*_*.A.的帖子

使用Smack 4.1.0的GCM XMPP服务器

我正在尝试调整这里为Smack 4.1.0 提供的示例.并有点困惑.

具体来说,我很难理解GcmPacketExtension现在应该扩展什么,构造函数应该如何工作以及如何更新Providermanager.addExtensionProvider以配合它.

我敢肯定以前有人必须这样做但是我找不到任何例子,而且我似乎只是使用文档进行圈选.

任何帮助将不胜感激,我相信答案很简单!

当前代码(正在编译但未运行):

    static {

    ProviderManager.addExtensionProvider(GCM_ELEMENT_NAME, GCM_NAMESPACE, new  ExtensionElementProvider<ExtensionElement>() {
        @Override
        public DefaultExtensionElement parse(XmlPullParser parser,int initialDepth) throws org.xmlpull.v1.XmlPullParserException,
        IOException {
            String json = parser.nextText();
            return new GcmPacketExtension(json);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

和:

private static final class GcmPacketExtension extends DefaultExtensionElement   {

    private final String json;

    public GcmPacketExtension(String json) {
        super(GCM_ELEMENT_NAME, GCM_NAMESPACE);
        this.json = json;
    }

    public String getJson() {
        return json;
    }

    @Override
    public String toXML() {
        return String.format("<%s xmlns=\"%s\">%s</%s>",
                GCM_ELEMENT_NAME, GCM_NAMESPACE,
                StringUtils.escapeForXML(json), GCM_ELEMENT_NAME);
    }

    public …
Run Code Online (Sandbox Code Playgroud)

xmpp smack google-cloud-messaging server

16
推荐指数
1
解决办法
7777
查看次数

标签 统计

google-cloud-messaging ×1

server ×1

smack ×1

xmpp ×1