首页
/ Converse.js v11.0.0 重大版本更新解析

Converse.js v11.0.0 重大版本更新解析

2025-06-16 05:07:13作者:钟日瑜

Converse.js 是一个开源的 XMPP/Jabber 即时通讯客户端,采用 JavaScript 编写,可以在浏览器中运行。作为一款功能强大的 Web 即时通讯工具,它支持单聊、群聊、文件传输等常见 IM 功能,同时提供了丰富的可定制选项。最新发布的 v11.0.0 版本带来了多项重要更新和改进,本文将深入解析这些技术亮点。

核心功能增强

1. 用户界面与交互优化

本次版本对用户界面进行了全面升级,最显著的变化是移除了 mobile 视图模式,统一采用 fullscreen 作为默认视图模式。同时引入了基于语言的布局方向自动调整功能,通过新的 rtl_langs 配置选项可以指定需要右到左(RTL)显示的语言。

在群组聊天(MUC)方面,新增了参与者筛选功能,优化了昵称显示方式,现在会显示简短标签并在标题中显示完整信息。此外,还改进了"添加 MUC"模态框,增加了表单验证并简化了地址输入方式。

2. XMPP 协议支持扩展

v11.0.0 增强了对多个 XMPP 扩展协议的支持:

  • 升级到最新版本的 XEP-0424 和 XEP-0425(消息撤回和消息审核),需要注意的是,新版本不再兼容旧格式的消息撤回和审核操作
  • 新增对 XEP-0191 阻止命令的支持,用户可以更方便地管理阻止列表
  • 实现了 XEP-0402 书签功能,改进了群组聊天书签管理
  • 支持 XEP-0392 一致颜色生成规范,提供更统一的用户界面颜色方案

3. 多媒体与消息处理

新版本增加了对音频流的渲染能力,并引入了 fetch_url_headers 配置选项来控制获取 URL 头信息的行为。特别值得一提的是新增了对 Spotify 音轨链接的内嵌播放器支持,通过 embed_3rd_party_media_players 配置选项可以启用这一功能。

在消息处理方面,改进了多行嵌套引用的显示方式,并新增了引用和复制消息的操作选项。历史消息管理也得到优化,现在可以更高效地处理大量消息记录。

技术架构改进

1. 前端框架升级

v11.0.0 将前端框架升级到了 Bootstrap 5,这带来了更现代化的界面组件和更好的响应式设计支持。同时移除了旧的 Concord 主题,新增了 CyberpunkNordic 两种视觉主题,为用户提供更多个性化选择。

2. API 与架构调整

本次版本对 API 进行了多项重要调整:

  • 移除了 _converse.BootstrapModal,改用基于 Web 组件的 _converse.BaseModal
  • 连接对象不再直接暴露在 _converse 上,需要通过 api.connection.get() 获取
  • 新增 _converse.exports 属性,作为第三方插件访问内部代码的标准方式
  • 移除了多个已弃用的事件和 API 方法,如 windowStateChangedchatBoxFocused

3. 性能优化

在性能方面,新版本引入了多项改进:

  • 默认启用 reuse_scram_keys 配置,提高认证效率
  • 新增 lazy_load_vcards 选项,支持延迟加载用户名片
  • 实现了 MUC 侧边栏的防抖渲染,减少不必要的 DOM 操作
  • 改进了历史消息的虚拟列表支持,提升大型聊天室的渲染性能

安全与稳定性增强

v11.0.0 在安全方面也有显著提升:

  • 修复了密码中包含特殊字符(&)时注册失败的问题
  • 改进了 SCRAM 密钥的重用机制
  • 增强了会话恢复失败时的处理逻辑,避免忙等待循环
  • 新增 stanza_timeout 配置选项,更好地控制请求超时

开发者注意事项

对于开发者而言,需要注意以下不兼容变更:

  1. 移除了 autocomplete_add_contact 配置,自动补全功能现在总是启用
  2. 修改了 api.contacts.add 方法的签名
  3. 移除了已弃用的 api.settings.update 方法,应改用 api.settings.extend
  4. getAssignableRolesgetAssignableAffiliations 方法现在位于 Occupant 实例上
  5. 移除了 default_state 配置选项

新版本还提供了多个扩展点,如 loadEmojis 钩子允许运行时自定义表情符号,getOccupantActionButtons 钩子支持为 MUC 参与者添加自定义操作按钮。

总结

Converse.js v11.0.0 是一个功能丰富、架构现代化的重大版本更新,不仅带来了诸多新特性和改进,还对代码结构进行了合理化调整。从用户体验到开发者接口,从协议支持到性能优化,这个版本在多方面都有显著提升。对于现有用户,建议仔细阅读变更说明,特别是那些可能影响现有功能的重大变更;对于新用户,这个版本提供了更强大、更稳定的即时通讯解决方案。

登录后查看全文
热门项目推荐

项目优选

收起
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
137
188
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
885
527
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
368
382
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
183
265
kernelkernel
deepin linux kernel
C
22
5
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
735
105
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
84
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.08 K
0
harmony-utilsharmony-utils
harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
ArkTS
53
1
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
400
376