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

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

2025-06-16 20:46:24作者:钟日瑜

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

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

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
163
2.05 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
199
279
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
16
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
952
558
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
96
15
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
0
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
77
71
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
17
0