smack 4.1 Openfire 示例示例 [关闭]

2024-01-21

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

但现在 smack 上有更新,他们已经转移到 4.1(android 原生集成):

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

所以我正在寻找一些代码示例/示例项目/代码片段SMACK 4.1 阿尔法与安卓/网络集成。 请提供一些有用的链接。

还有关于进行/或不进行此升级的建议。由于smack 4.1还没有发布。

Thanks.


使用 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 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();
            }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

smack 4.1 Openfire 示例示例 [关闭] 的相关文章

随机推荐

  • 无法授予对证书、标识符和配置文件的访问权限

    我购买了一个苹果开发者帐户 我正在尝试添加一个用户作为管理员并授予对证书 标识符和配置文件的访问权限 但该复选框已禁用 我无法勾选它 我认为您已经创建了 Apple 开发者帐户个人 要将其他用户添加为具有 证书 标识符和配置文件 访问权限的
  • Rails,Ruby,如何对数组进行排序?

    在我的 Rails 应用程序中 我正在创建一个数组 如下所示 messages each do message list lt lt id gt message id title gt message title time ago gt m
  • WIF滑动会话重新认证

    我已经在依赖方应用程序中实现了滑动会话 如中所述WIF 4 5 的滑动会话 http www cloudidentity com blog 2013 05 08 sliding sessions for wif 4 5 就目前而言 这很有效
  • 创建带有任何参数的 std::functions 的 unordered_map ?

    我正在尝试创建一个无序地图std functions 其中键是一个字符串 您将在其中查找要调用的函数 而该函数就是值 我写了一个小程序 include
  • 多边形不是封闭的

    我注意到 当使用绘图管理器绘制多边形时 它们没有关闭 即最后一个点到第一个点没有坐标 我知道 Google Maps API v3 会自动关闭多边形 但 Google Earth Google Static Maps API 或任何其他软件
  • 在 iOS 8 框架中使用类别

    我正在尝试使用框架在应用程序和扩展之间共享一些代码 大多数情况下 这是有效的 但我有几个类别似乎无法在扩展中正确加载 例如 我在 NSString 上有一个类别来反转目标字符串 但是当我尝试在扩展中使用该选择器时 我的代码会陷入 无法识别的
  • 在 JS 中格式化 Date()

    我有脚本然后需要获取这种格式的日期和时间08 25 2017 1 54 PM 我为日期编写代码 这里是 document ready function var dateNow new Date var dd dateNow getDate
  • 如何在React中给组件添加滚动条?

    我在 SPA 中使用带有 3 列的网格系统 左右列表包含占用 100 视口高度的组件 中间列包含一个长列表 并且想在中间组件中添加一个滚动条 我尝试用几个不同的滚动条组件编写中间组件 但没有任何效果 我最终总是看到一个主页滚动 当进一步向下
  • 绘图程序

    我倾向于成为一个视觉思考者 因此 如果我可以想象程序中的数据流 那么我就可以更好地理解其中发生的事情 而不是阅读正在发生的事情的文本故事 伪代码 有没有一种方法可以直观地表示变量和对象流经函数以及被函数更改的方式 最好是在小规模 单个函数内
  • 如何使用 NSUserDefaults 在 Swift 中保存 Int 数组?

    这是一个数组 var myArray 1 它包含Int values 这就是我保存数组的方式NSUserDefaults 这段代码似乎工作正常 NSUserDefaults standardUserDefaults setObject my
  • 关闭后如何清除模态中的反应状态?

    我有一张显示产品详细信息的产品卡 底部有一个 编辑 button When clicked它显示了一个预填充的模态input字段 可以编辑然后保存 模态框也可以关闭而不保存 但已编辑输入字段 我的问题是 当用户编辑字段时 然后关闭模式 不保
  • iOS 16 模拟器:在模拟器中运行应用程序会导致“.xpc 错误”

    更新到 macOS 13 0 Beta 并安装 Xcode 14 0 Beta 后 我们运行一个应用程序 将目标操作系统设置为 16 出现以下错误 手动启动时 iPhone 模拟器也不会启动 这里是描述问题的详细错误消息 Details T
  • 将镜像从 ECR 拉取到 Kubernetes 部署文件

    我在从 AWS ECR 存储库中提取 docker 映像时遇到了这个问题 之前我使用过 kubectl create secret docker registry regcred docker server https index dock
  • 在 MATLAB 中执行此类 Python 向量化赋值的等效方法是什么?

    我正在尝试将这行代码从 Python 转换为 MATLAB new img M 0 corners 0 0 M 1 corners 1 0 img T 0 T 1 所以 很自然地 我写了这样的东西 new img M 1 corners 2
  • 导入Visual Studio测试项目时如何创建vsmdi/testrunco​​nfig文件?

    当我添加现有测试项目时 我的解决方案缺少 vsdmi 和 testrunco nfig 文件 如何创建它 这个问题的解决方案有点棘手 您必须将 新项目 添加到您的解决方案中 而不是您的测试项目中 在 添加新项目 对话框中 您可以选择 测试运
  • 使首选项看起来已禁用,但仍记录点击

    因此 在我的应用程序的某些状态下 我想在我的设置菜单中禁用某些 CheckBoxPreferences 但是 如果用户单击它们 我希望显示一个解释性的 toast 如果我只是执行 setEnable false 在 CheckBoxPref
  • 该项目需要一个淘汰计时器

    我的项目需要一个淘汰计时器 只需单击一下即可在计时器达到 0 后重新启动 我有以下代码 但这不会重新启动 有人可以帮助我吗 this countDown ko observable ko bindingHandlers timer upda
  • 根据相似度匹配 2 个字符串列表

    Problem 我有 2 个字符串列表 我想从我的列表中找到最匹配的对 例如 我有这两个列表 list1 a1 b1 c1 list2 a2 b2 c2 我想得到以下结果 results a1 a2 b1 b2 c1 c2 附加信息 为了比
  • 使用 R 将 t 分布叠加到我的直方图上?

    如何使用 R 将 t 密度叠加到直方图上 这是我的功能 simfun lt function a 56 25102409 b 1 78977412 c 0 08664925 n 18 x1 sd 18 87671 x2 sd 18 8767
  • smack 4.1 Openfire 示例示例 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的门户网站一直使用 smack 3 4 我的 Android 应用程序也使用了 asmack 3 4