概述
OneBot Connect 是 OneBot 应用与 OneBot 实现通过网络连接的规范,由两部分组成:
- 通信方式规定了 OneBot 应用与 OneBot 实现进行网络连接所使用的通信协议、数据编码
- 数据协议定义了 OneBot 应用与 OneBot 实现之间在各种通信方式上传输的数据
通信方式
OneBot Connect 目前包含四种通信方式,分别是:
- HTTP:OneBot 实现作为 HTTP 服务端,提供动作调用服务
- HTTP Webhook:OneBot 实现作为 HTTP 客户端,向用户配置的地址推送事件
- 正向 WebSocket:OneBot 实现作为 WebSocket 服务端,接受客户端的接入,提供动作调用和事件推送服务
- 反向 WebSocket:OneBot 实现作为 WebSocket 客户端,向用户配置的地址发起连接,提供动作调用和事件推送服务
数据协议
OneBot Connect 目前包含三种数据协议,分别是:
- 事件:OneBot 实现自发产生或从机器人平台获得的消息、通知等,由 OneBot 实现向应用端推送
- 动作请求:应用端向 OneBot 实现主动请求服务时所发送的动作调用请求
- 动作响应:OneBot 实现在收到应用端的动作请求并处理完毕后,发回应用端的响应
对 OneBot 实现的要求
除非语言或运行环境不允许,否则 OneBot 实现应完整支持 OneBot Connect 所规定的所有通信方式和数据协议。每种通信方式可以允许用户同时配置多个。
当确实有客观限制时,OneBot 实现应支持尽可能多的通信方式,并在文档中说明。
除了标准的通信方式外,OneBot 实现可以支持其它扩展的通信方式,但建议提供明显的区别方式,让用户能意识到它不是标准通信方式。