(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{577:function(t,v,_){"use strict";_.r(v);var o=_(21),e=Object(o.a)({},(function(){var t=this,v=t.$createElement,_=t._self._c||v;return _("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[_("h1",{attrs:{id:"概览"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#概览"}},[t._v("#")]),t._v(" 概览")]),t._v(" "),_("div",{staticClass:"custom-block tip"},[_("p",{staticClass:"custom-block-title"},[t._v("提示")]),t._v(" "),_("p",[t._v("初次使用时可能会觉得这里的概览过于枯燥，可以先简单略读之后直接前往 "),_("router-link",{attrs:{to:"./installation.html"}},[t._v("安装")]),t._v(" 查看安装方法，并进行后续的基础使用教程。")],1)]),t._v(" "),_("h2",{attrs:{id:"简介"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#简介"}},[t._v("#")]),t._v(" 简介")]),t._v(" "),_("p",[t._v("NoneBot2 是一个可扩展的 Python 异步机器人框架，它会对机器人收到的事件进行解析和处理，并以插件化的形式，按优先级分发给事件所对应的事件响应器，来完成具体的功能。")]),t._v(" "),_("p",[t._v("除了起到解析事件的作用，NoneBot 还为插件提供了大量实用的预设操作和权限控制机制。对于命令处理，它更是提供了完善且易用的会话机制和内部调用机制，以分别适应命令的连续交互和插件内部功能复用等需求。")]),t._v(" "),_("p",[t._v("得益于 Python 的 "),_("a",{attrs:{href:"https://docs.python.org/3/library/asyncio.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("asyncio"),_("OutboundLink")],1),t._v(" 机制，NoneBot 处理事件的吞吐量有了很大的保障，再配合 WebSocket 通信方式（也是最建议的通信方式），NoneBot 的性能可以达到 HTTP 通信方式的两倍以上，相较于传统同步 I/O 的 HTTP 通信，更是有质的飞跃。")]),t._v(" "),_("p",[t._v("需要注意的是，NoneBot 仅支持 "),_("strong",[t._v("Python 3.7+")])]),t._v(" "),_("h2",{attrs:{id:"特色"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#特色"}},[t._v("#")]),t._v(" 特色")]),t._v(" "),_("p",[t._v("NoneBot2 的驱动框架 "),_("code",[t._v("Driver")]),t._v(" 以及通信协议 "),_("code",[t._v("Adapter")]),t._v(" 均可"),_("strong",[t._v("自定义")]),t._v("，并且可以作为插件进行"),_("strong",[t._v("替换/添加")]),t._v("！")]),t._v(" "),_("ul",[_("li",[t._v("提供使用简易的脚手架")]),t._v(" "),_("li",[t._v("提供丰富的官方插件")]),t._v(" "),_("li",[t._v("提供可添加/替换的驱动以及协议选项")]),t._v(" "),_("li",[t._v("基于异步 I/O")]),t._v(" "),_("li",[t._v("同时支持 HTTP 和反向 WebSocket 通信方式")]),t._v(" "),_("li",[t._v("支持多个机器人账号负载均衡")]),t._v(" "),_("li",[t._v("提供直观的交互式会话接口")]),t._v(" "),_("li",[t._v("提供可自定义的权限控制机制")]),t._v(" "),_("li",[t._v("多种方式渲染要发送的消息内容，使对话足够自然")])])])}),[],!1,null,null,null);v.default=e.exports}}]);