介绍¶
NoneBot Adapter Matrix 是 NoneBot2 的 Matrix 协议适配器。它实现了 Matrix Client-Server API 的核心子集,让开发者可以用 Python 编写能加入 Matrix 聊天室、收发消息、响应指令的机器人。
设计理念¶
适配器完全遵循 NoneBot 的事件驱动模型:通过 /sync 长轮询持续拉取 Matrix homeserver 的事件流,将房间消息、邀请、成员变更等事件转换为标准的 NoneBot Event,分派给对应的事件处理器。开发者只需像处理普通聊天消息一样编写插件,无需关心底层 Matrix 协议的细节。
核心能力¶
消息收发:支持
m.room.message纯文本、HTML、通知、表情消息,以及图片/文件/音频/视频等媒体上传与发送。房间操作:加入房间、自动接受邀请(支持白名单/黑名单)、查询成员列表。
交互增强:发送表情反应、撤回消息、设置输入状态、标记已读。
三种认证模式:静态 Token、传统 Matrix 密码登录、OAuth2 Authorization Code + PKCE。
端到端加密(opt-in):基于 Olm/Megolm 协议的 E2EE 支持,可收发加密房间的消息,并支持通过
MATRIX_RECOVERY_CODE从服务端密钥备份恢复会话。
架构概览¶
适配器由以下核心模块组成:
Bot:机器人实例,封装 API 调用与加密引擎。Adapter:适配器主类,负责启动、同步循环、Token 生命周期管理。Event:Matrix 事件映射,包括消息、成员变动、反应、输入状态等。Message/MessageSegment:消息与消息段的构造与解析。CryptoEngine:E2EE 加密引擎,编排 Olm/Megolm 会话。
运行时每个 Bot 实例对应一个 Matrix 用户;Adapter 为每份 BotInfo 配置启动一个独立的同步循环。