gpt4 book ai didi

openfire - smack 4.1 Openfire 示例示例

转载 作者:行者123 更新时间:2023-12-04 23:00:38 26 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

4 个月前关闭。




Improve this question




我的门户网站一直在使用 smack 3.4。也将 asmack 3.4 用于我的 android 应用程序
(aSmack 的开发在几年前就停止了,但在那里我使用了一些非官方的 jar。在文件上传和群聊方面遇到了问题,所以想升级到官方 smack,因为它现在有 Android 原生支持)。

但是现在有一个关于 smack 的更新,他们已经转移到 4.1(android 原生集成):

https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide .

所以我正在寻找一些带有 的代码示例/示例项目/代码片段SMACK 4.1 alpha 与 android/web 集成。
请提供一些有用的链接。

还有关于做/或不做这个升级的建议。由于 smack 4.1 还没有发布。

谢谢。

最佳答案

使用 SSL 的连接示例 (smack-4.1.0-beta2-SNAPSHOT-2015-02-01):

    XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
config.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
//For OLD STYLE SSL
//config.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled);
config.setUsernameAndPassword(USERNAME + "@" + DOMAIN, "PASSWORD");
config.setServiceName(DOMAIN);
config.setHost(DOMAIN);
config.setPort(PORT);
config.setDebuggerEnabled(true);
//OLD STYLE SSL
//config.setSocketFactory(SSLSocketFactory.getDefault());

try {
SSLContext sc = SSLContext.getInstance("TLS");
MemorizingTrustManager mtm = new MemorizingTrustManager(ctx);
sc.init(null, MemorizingTrustManager.getInstanceList(ctx), new SecureRandom());
config.setCustomSSLContext(sc);
config.setHostnameVerifier(mtm.wrapHostnameVerifier(new org.apache.http.conn.ssl.StrictHostnameVerifier()));
} catch (NoSuchAlgorithmException | KeyManagementException e) {
throw new IllegalStateException(e);
}

mConnection = new XMPPTCPConnection(config.build());
mConnection.setPacketReplyTimeout(10000);

try {
mConnection.connect();
mConnection.login();
} catch (SmackException | IOException | XMPPException e) {
e.printStackTrace();
}
  • https://github.com/ge0rg/MemorizingTrustManager/tree/master/src/de/duenndns/ssl

  • 聊天创建示例:
               final ChatManager chatManager = ChatManager.getInstanceFor(mConnection);
    chatManager.addChatListener(new ChatManagerListener() {
    @Override
    public void chatCreated(Chat chat, boolean b) {
    chat.addMessageListener(new ChatMessageListener() {
    @Override
    public void processMessage(Chat chat, Message message) {
    mServerResponse.gotMessage(message.getBody());
    Log.d(TAG, message.toString());
    }
    });
    }
    });

    Chat chat2 = chatManager.createChat(USERNAME + "@" + DOMAIN);
    try {
    chat2.sendMessage("text");
    } catch (SmackException.NotConnectedException e) {
    e.printStackTrace();
    }

    关于openfire - smack 4.1 Openfire 示例示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26100058/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com