app/dev/comm.html

69 lines
64 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-Hans" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>进程通信 | 轻雪机器人</title>
<meta name="description" content="一个综合性的机器人应用及管理框架">
<meta name="generator" content="VitePress v1.5.0">
<link rel="preload stylesheet" href="/assets/style.ibT9l-Gp.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.BT9SExIC.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.DjavgrUf.js">
<link rel="modulepreload" href="/assets/chunks/framework._avq4Ty7.js">
<link rel="modulepreload" href="/assets/dev_comm.md.BdU9h70O.lean.js">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="stylesheet" href="https://fonts.font.im/css?family=Cousine:400,400i,700,700i|Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-2391887b data-v-cf959ac2><!--[--><!--]--><!--[--><span tabindex="-1" data-v-09f1bf64></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-09f1bf64> Skip to content </a><!--]--><!----><header class="VPNav" data-v-cf959ac2 data-v-4a2d6202><div class="VPNavBar" data-v-4a2d6202 data-v-8c2dd89c><div class="wrapper" data-v-8c2dd89c><div class="container" data-v-8c2dd89c><div class="title" data-v-8c2dd89c><div class="VPNavBarTitle has-sidebar" data-v-8c2dd89c data-v-60cf36d1><a class="title" href="/" data-v-60cf36d1><!--[--><!--]--><!--[--><!--[--><!--[--><img class="VPImage dark logo" src="/liteyuki-dark.svg" alt="LiteyukiBot Logo" data-v-e656d635><!--]--><!--[--><img class="VPImage light logo" src="/liteyuki.svg" alt="LiteyukiBot Logo" data-v-e656d635><!--]--><!--]--><!--]--><span data-v-60cf36d1>轻雪机器人</span><!--[--><!--]--></a></div></div><div class="content" data-v-8c2dd89c><div class="content-body" data-v-8c2dd89c><!--[--><!--]--><div class="VPNavBarSearch search" data-v-8c2dd89c><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="打开搜索框"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">搜索文档</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-8c2dd89c data-v-fb179ef2><span id="main-nav-aria-label" class="visually-hidden" data-v-fb179ef2> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/deploy/install.html" tabindex="0" data-v-fb179ef2 data-v-f6113321><!--[--><span data-v-f6113321>部署</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/usage/basic.html" tabindex="0" data-v-fb179ef2 data-v-f6113321><!--[--><span data-v-f6113321>使用</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/store/resource.html" tabindex="0" data-v-fb179ef2 data-v-f6113321><!--[--><span data-v-f6113321>扩展</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/dev/guide.html" tabindex="0" data-v-fb179ef2 data-v-f6113321><!--[--><span data-v-f6113321>开发</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-8c2dd89c data-v-7a36dbca data-v-32e61f0e><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="语言" data-v-32e61f0e><span class="text" data-v-32e61f0e><span class="vpi-languages option-icon" data-v-32e61f0e></span><!----><span class="vpi-chevron-down text-icon" data-v-32e61f0e></span></span></button><div class="menu" data-v-32e61f0e><div class="VPMenu" data-v-32e61f0e data-v-12ef594d><!----><!--[--><!--[--><div class="items" data-v-7a36dbca><p class="title" data-v-7a36dbca>简体中文</p><!--[--><div class="VPMenuLink" data-v-7a36dbca data-v-a334e8c3><a class="VPLink link" href="/en/dev/comm.html" data-v-a334e8c3><!--[--><span data-v-a334e8c3>English</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-8c2dd89c data-v-824ec8bd><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-824ec8bd data-v-d8e7d9d8 data-v-61ab5455><span class="check" data-v-61ab5455><span class="icon" data-v-61ab5455><!--[--><span class="vpi-sun sun" data-v-d8e7d9d8></span><span class="vpi-moon moon" data-v-d8e7d9d8></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-8c2dd89c data-v-b9e91830 data-v-0d378c5e><!--[--><a class="VPSocialLink no-icon" href="https://github.com/LiteyukiStudio/LiteyukiBot" aria-label="github" target="_blank" rel="noopener" data-v-0d378c5e data-v-229dabda><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://git.liteyuki.icu/bot/app" aria-label target="_blank" rel="noopener" data-v-0d378c5e data-v-229dabda><svg t="1725391346807" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5067" width="256" height="256"><path d="M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z" fill="#a2d8f4" p-id="5068"></path></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-8c2dd89c data-v-ecf54355 data-v-32e61f0e><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-32e61f0e><span class="vpi-more-horizontal icon" data-v-32e61f0e></span></button><div class="menu" data-v-32e61f0e><div class="VPMenu" data-v-32e61f0e data-v-12ef594d><!----><!--[--><!--[--><div class="group translations" data-v-ecf54355><p class="trans-title" data-v-ecf54355>简体中文</p><!--[--><div class="VPMenuLink" data-v-ecf54355 data-v-a334e8c3><a class="VPLink link" href="/en/dev/comm.html" data-v-a334e8c3><!--[--><span data-v-a334e8c3>English</span><!--]--></a></div><!--]--></div><div class="group" data-v-ecf54355><div class="item appearance" data-v-ecf54355><p class="label" data-v-ecf54355>主题</p><div class="appearance-action" data-v-ecf54355><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-ecf54355 data-v-d8e7d9d8 data-v-61ab5455><span class="check" data-v-61ab5455><span class="icon" data-v-61ab5455><!--[--><span class="vpi-sun sun" data-v-d8e7d9d8></span><span class="vpi-moon moon" data-v-d8e7d9d8></span><!--]--></span></span></button></div></div></div><div class="group" data-v-ecf54355><div class="item social-links" data-v-ecf54355><div class="VPSocialLinks social-links-list" data-v-ecf54355 data-v-0d378c5e><!--[--><a class="VPSocialLink no-icon" href="https://github.com/LiteyukiStudio/LiteyukiBot" aria-label="github" target="_blank" rel="noopener" data-v-0d378c5e data-v-229dabda><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://git.liteyuki.icu/bot/app" aria-label target="_blank" rel="noopener" data-v-0d378c5e data-v-229dabda><svg t="1725391346807" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5067" width="256" height="256"><path d="M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z" fill="#a2d8f4" p-id="5068"></path></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-8c2dd89c data-v-8ae7def0><span class="container" data-v-8ae7def0><span class="top" data-v-8ae7def0></span><span class="middle" data-v-8ae7def0></span><span class="bottom" data-v-8ae7def0></span></span></button></div></div></div></div><div class="divider" data-v-8c2dd89c><div class="divider-line" data-v-8c2dd89c></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-cf959ac2 data-v-c207e03d><div class="container" data-v-c207e03d><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-c207e03d><span class="vpi-align-left menu-icon" data-v-c207e03d></span><span class="menu-text" data-v-c207e03d>菜单</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-c207e03d data-v-5ce1e66e><button data-v-5ce1e66e>返回顶部</button><!----></div></div></div><aside class="VPSidebar" data-v-cf959ac2 data-v-fc0344af><div class="curtain" data-v-fc0344af></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-fc0344af><span class="visually-hidden" id="sidebar-aria-label" data-v-fc0344af> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-011116a8><section class="VPSidebarItem level-0 has-active" data-v-011116a8 data-v-a5d4cd7a><div class="item" role="button" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><h2 class="text" data-v-a5d4cd7a>LITEYUKIBOT</h2><!----></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-1 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/guide.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>开发指南</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/resource.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>资源包开发</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/lyfunc.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>轻雪函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/plugin.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>插件开发</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/comm.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>进程通信</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/best_practices.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>最佳实践</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/index.html" data-v-a5d4cd7a><!--[--><h3 class="text" data-v-a5d4cd7a>liteyuki API</h3><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/bot/index.html" data-v-a5d4cd7a><!--[--><h4 class="text" data-v-a5d4cd7a>liteyuki.bot</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/bot/" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.bot</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/bot/lifespan.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.bot.lifespan</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/comm/index.html" data-v-a5d4cd7a><!--[--><h4 class="text" data-v-a5d4cd7a>liteyuki.comm</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/comm/channel.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.comm.channel</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/comm/event.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.comm.event</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/comm/" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.comm</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/comm/storage.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.comm.storage</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-2 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/config.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.config</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/core/index.html" data-v-a5d4cd7a><!--[--><h4 class="text" data-v-a5d4cd7a>liteyuki.core</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/core/" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.core</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/core/manager.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.core.manager</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/dev/index.html" data-v-a5d4cd7a><!--[--><h4 class="text" data-v-a5d4cd7a>liteyuki.dev</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/dev/" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.dev</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/dev/observer.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.dev.observer</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/dev/plugin.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.dev.plugin</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-2 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/exception.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.exception</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/log.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.log</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugin/index.html" data-v-a5d4cd7a><!--[--><h4 class="text" data-v-a5d4cd7a>liteyuki.plugin</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugin/" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.plugin</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugin/load.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.plugin.load</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugin/manager.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.plugin.manager</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugin/model.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.plugin.model</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugins/index.html" data-v-a5d4cd7a><!--[--><h4 class="text" data-v-a5d4cd7a>liteyuki.plugins</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugins/" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.plugins</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugins/liteecho.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.plugins.liteecho</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugins/plugin_loader/index.html" data-v-a5d4cd7a><!--[--><h5 class="text" data-v-a5d4cd7a>liteyuki.plugins.plugin_loader</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-4 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/plugins/plugin_loader/" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.plugins.plugin_loader</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/session/index.html" data-v-a5d4cd7a><!--[--><h4 class="text" data-v-a5d4cd7a>liteyuki.session</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/session/event.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.session.event</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/session/" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.session</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/session/matcher.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.session.matcher</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-3 collapsible collapsed" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" role="button" tabindex="0" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><h5 class="text" data-v-a5d4cd7a>message</h5><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-a5d4cd7a><span class="vpi-chevron-right caret-icon" data-v-a5d4cd7a></span></div></div><div class="items" data-v-a5d4cd7a><!--[--><div class="VPSidebarItem level-4 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/session/message/segments.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.session.message.segments</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/session/models.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.session.models</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/session/on.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.session.on</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/session/rule.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.session.rule</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-2 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/utils.html" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki.utils</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-a5d4cd7a data-v-a5d4cd7a><div class="item" data-v-a5d4cd7a><div class="indicator" data-v-a5d4cd7a></div><a class="VPLink link link" href="/dev/api/" data-v-a5d4cd7a><!--[--><p class="text" data-v-a5d4cd7a>liteyuki API</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-cf959ac2 data-v-b8a3f39d><div class="VPDoc has-sidebar has-aside" data-v-b8a3f39d data-v-92d339c1><!--[--><!--]--><div class="container" data-v-92d339c1><div class="aside" data-v-92d339c1><div class="aside-curtain" data-v-92d339c1></div><div class="aside-container" data-v-92d339c1><div class="aside-content" data-v-92d339c1><div class="VPDocAside" data-v-92d339c1 data-v-d894a65d><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-d894a65d data-v-f1cd1f83><div class="content" data-v-f1cd1f83><div class="outline-marker" data-v-f1cd1f83></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-f1cd1f83>页面内容</div><ul class="VPDocOutlineItem root" data-v-f1cd1f83 data-v-4cc82222><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-d894a65d></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-92d339c1><div class="content-container" data-v-92d339c1><!--[--><!--]--><main class="main" data-v-92d339c1><div style="position:relative;" class="vp-doc _dev_comm" data-v-92d339c1><div><h1 id="通道通信" tabindex="-1"><strong>通道通信</strong> <a class="header-anchor" href="#通道通信" aria-label="Permalink to &quot;**通道通信**&quot;"></a></h1><h3 id="简介" tabindex="-1">简介 <a class="header-anchor" href="#简介" aria-label="Permalink to &quot;简介&quot;"></a></h3><p>轻雪运行在主进程 MainProcess 里,有部分实现插件为了一些功能在子进程中运行,这样两个进程上下文是不会互相干扰的,因此无法通过共享内存和直接对象传递进行通信。</p><p>例如子进程接收到用户信息需要重启机器人,这时可以通过通道对主进程发送消息,主进程接收到消息后重启对应子进程。</p><h3 id="示例" tabindex="-1">示例 <a class="header-anchor" href="#示例" aria-label="Permalink to &quot;示例&quot;"></a></h3><p>通道是全双工的,有两种接收模式,但一个通道只能使用一种,即被动模式和主动模式,被动模式由<code>chan.on_receive()</code>装饰回调函数实现,主动模式需调用<code>chan.receive()</code>实现</p><ul><li>创建子进程的同时会初始化一个被动通道和一个主动通道,且通道标识为<code>{process_name}-active</code><code>{process_name}-passive</code></li><li>主进程中通过<code>get_channel</code>函数获取通道对象</li><li>子进程中导入单例<code>active_channel</code><code>passive_channel</code>即可</li></ul><blockquote><p>在轻雪插件中(主进程中)</p></blockquote><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> asyncio</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> liteyuki.comm </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> get_channel, Channel</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> liteyuki </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> get_bot</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># get_channel函数获取通道对象参数为调用set_channel时的通道标识</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">channel_passive </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> get_channel(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;nonebot-passive&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 获取被动通道</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">channel_active </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> get_channel(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;nonebot-active&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 获取主动通道</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">liteyuki_bot </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> get_bot()</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 注册一个函数在轻雪启动后运行</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@liteyuki_bot.on_after_start</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> send_data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> while</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> channel_passive.send(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;I am liteyuki main process passive&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> channel_active.send(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;I am liteyuki main process active&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> asyncio.sleep(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 每3秒发送一次消息</span></span></code></pre></div><blockquote><p>在子进程中例如NoneBot插件中</p></blockquote><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> nonebot </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> get_driver</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> liteyuki.comm </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> active_channel, passive_channel </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 子进程中获取通道直接导入进程全局单例即可</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> liteyuki.log </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> logger</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">driver </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> get_driver()</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 被动模式,通过装饰器注册一个函数在接收到消息时运行,每次接收到字符串数据时都会运行</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@passive_channel.on_receive</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">filter_func</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=lambda</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> data: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">))</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> on_passive_receive</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(data):</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> logger.info(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Passive receive: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">data</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 注册一个函数在NoneBot启动后运行</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@driver.on_startup</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> on_startup</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">():</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> while</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> data </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> active_channel.receive()</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> logger.info(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Active receive: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">data</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div><blockquote><p>启动后控制台输出</p></blockquote><div class="language-log vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">log</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">0000-00-00</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> 00:00:00</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [ℹ️信息] Passive receive: I am liteyuki main process passive</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">0000-00-00</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> 00:00:00</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [ℹ️信息] Active receive: I am liteyuki main process active</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">0000-00-00</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> 00:00:03</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [ℹ️信息] Passive receive: I am liteyuki main process passive</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">0000-00-00</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> 00:00:03</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [ℹ️信息] Active receive: I am liteyuki main process active</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">...</span></span></code></pre></div><h2 id="共享内存通信" tabindex="-1"><strong>共享内存通信</strong> <a class="header-anchor" href="#共享内存通信" aria-label="Permalink to &quot;**共享内存通信**&quot;"></a></h2><h3 id="简介-1" tabindex="-1">简介 <a class="header-anchor" href="#简介-1" aria-label="Permalink to &quot;简介&quot;"></a></h3><ul><li>相比于普通进程通信,内存共享使得代码编写更加简洁,轻雪框架提供了一个内存共享通信的接口,你可以通过<code>storage</code>模块实现内存共享通信,该模块封装通道实现</li><li>内存共享是线程安全的,你可以在多个线程中读写共享内存,线程锁会自动保护共享内存的读写操作</li></ul><h3 id="示例-1" tabindex="-1">示例 <a class="header-anchor" href="#示例-1" aria-label="Permalink to &quot;示例&quot;"></a></h3><blockquote><p>在任意进程中均可使用</p></blockquote><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> liteyuki.comm.storage </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> shared_memory</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">shared_memory.set(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;key&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;value&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 设置共享内存</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">value </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> shared_memory.get(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;key&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 获取共享内存</span></span></code></pre></div><p>源代码:<a href="https://github.com/LiteyukiStudio/LiteyukiBot/blob/main/liteyuki/comm/storage.py" target="_blank" rel="noreferrer">liteyuki/comm/storage.py</a></p></div></div></main><footer class="VPDocFooter" data-v-92d339c1 data-v-d71d06df><!--[--><!--]--><div class="edit-info" data-v-d71d06df><div class="edit-link" data-v-d71d06df><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/docs/zh/dev/comm.md" target="_blank" rel="noreferrer" data-v-d71d06df><!--[--><span class="vpi-square-pen edit-link-icon" data-v-d71d06df></span> 在 GitHub 上编辑此页<!--]--></a></div><div class="last-updated" data-v-d71d06df><p class="VPLastUpdated" data-v-d71d06df data-v-2530b5c9>Last updated: <time datetime="2024-10-25T18:34:58.000Z" data-v-2530b5c9></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d71d06df><span class="visually-hidden" id="doc-footer-aria-label" data-v-d71d06df>Pager</span><div class="pager" data-v-d71d06df><a class="VPLink link pager-link prev" href="/dev/plugin.html" data-v-d71d06df><!--[--><span class="desc" data-v-d71d06df>上一页</span><span class="title" data-v-d71d06df>插件开发</span><!--]--></a></div><div class="pager" data-v-d71d06df><a class="VPLink link pager-link next" href="/dev/best_practices.html" data-v-d71d06df><!--[--><span class="desc" data-v-d71d06df>下一页</span><span class="title" data-v-d71d06df>最佳实践</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-cf959ac2 data-v-2c1ead0b><div class="container" data-v-2c1ead0b><p class="message" data-v-2c1ead0b>文档由 <a href="https://vitepress.dev/">VitePress</a> 构建 | API引用由 <a href="https://github.com/LiteyukiStudio/litedoc">litedoc</a> 生成</p><p class="copyright" data-v-2c1ead0b>Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"deploy_config.md\":\"1_CQ0FbK\",\"deploy_fandq.md\":\"BPleytoW\",\"deploy_install.md\":\"Sk9eehU9\",\"dev_api_bot_index.md\":\"Bi674fgO\",\"dev_api_bot_lifespan.md\":\"2zK906gE\",\"dev_api_comm_channel.md\":\"2kL837ew\",\"dev_api_comm_event.md\":\"BU5q7K5I\",\"dev_api_comm_index.md\":\"BQ4CZLqP\",\"dev_api_comm_storage.md\":\"DqJ8aVqB\",\"dev_api_config.md\":\"BF9ZWJMD\",\"dev_api_core_index.md\":\"C7-mYcFb\",\"dev_api_core_manager.md\":\"D-46Ej1L\",\"dev_api_dev_index.md\":\"C-Z4jV0w\",\"dev_api_dev_observer.md\":\"C8n3KGB-\",\"dev_api_dev_plugin.md\":\"kuS0l6X3\",\"dev_api_exception.md\":\"B1ZNvi-7\",\"dev_api_index.md\":\"DCSHyQNH\",\"dev_api_log.md\":\"Cht1l-z0\",\"dev_api_plugin_index.md\":\"Ob9cT1Tw\",\"dev_api_plugin_load.md\":\"B8TUs35a\",\"dev_api_plugin_manager.md\":\"CV_EY-n_\",\"dev_api_plugin_model.md\":\"B6zUTgyK\",\"dev_api_plugins_index.md\":\"BJaF6GJo\",\"dev_api_plugins_liteecho.md\":\"0olLW-gF\",\"dev_api_plugins_plugin_loader_index.md\":\"Bk_JMvR5\",\"dev_api_session_event.md\":\"eoIRQPSp\",\"dev_api_session_index.md\":\"BB5rwUqh\",\"dev_api_session_matcher.md\":\"DY05_Eet\",\"dev_api_session_message_segments.md\":\"0beZiwPd\",\"dev_api_session_models.md\":\"Jq2lUC1f\",\"dev_api_session_on.md\":\"ClG5jupL\",\"dev_api_session_rule.md\":\"Jlr6fWcz\",\"dev_api_utils.md\":\"BCPR7M6j\",\"dev_best_practices.md\":\"Cymrt9FM\",\"dev_comm.md\":\"BdU9h70O\",\"dev_guide.md\":\"CKJge6Av\",\"dev_lyfunc.md\":\"CTyKZzIv\",\"dev_plugin.md\":\"Cw4jmM1r\",\"dev_resource.md\":\"DHaliAic\",\"en_deploy_config.md\":\"BQn5E2Bj\",\"en_deploy_fandq.md\":\"BrjsxnAp\",\"en_deploy_install.md\":\"YWJCbrQ9\",\"en_dev_api_bot_index.md\":\"D7pBXyxE\",\"en_dev_api_bot_lifespan.md\":\"CB0llI1b\",\"en_dev_api_comm_channel.md\":\"BEDKOQou\",\"en_dev_api_comm_event.md\":\"DZFP2XdR\",\"en_dev_api_comm_index.md\":\"fm8_o36k\",\"en_dev_api_comm_storage.md\":\"CrdoT2Rt\",\"en_dev_api_config.md\":\"DXvPY7q0\",\"en_dev_api_core_index.md\":\"B8YwtibJ\",\"en_dev_api_core_manager.md\":\"DY8pAztC\",\"en_dev_api_dev_index.md\":\"BsvLsbb9\",\"en_dev_api_dev_observer.md\":\"Z8JLVw48\",\"en_dev_api_dev_plugin.md\":\"B4YGlvi7\",\"en_dev_api_exception.md\":\"Bi5kZE7B\",\"en_dev_api_index.md\":\"BRwWnJjT\",\"en_dev_api_log.md\":\"CYlQgvc9\",\"en_dev_api_plugin_index.md\":\"DMMLxcgg\",\"en_dev_api_plugin_load.md\":\"DBI0e8uW\",\"en_dev_api_plugin_manager.md\":\"YuROJtz4\",\"en_dev_api_plugin_model.md\":\"DzkLtdgt\",\"en_dev_api_plugins_index.md\":\"CcwDiD2t\",\"en_dev_api_plugins_liteecho.md\":\"XcPv4epx\",\"en_dev_api_plugins_plugin_loader_index.md\":\"DfULXUOM\",\"en_dev_api_session_event.md\":\"C68739Mu\",\"en_dev_api_session_index.md\":\"DlOjeQ_f\",\"en_dev_api_session_matcher.md\":\"Dsdkm06f\",\"en_dev_api_session_message_segments.md\":\"C40mpa6j\",\"en_dev_api_session_models.md\":\"5kxE35_Q\",\"en_dev_api_session_on.md\":\"CF0RXj7a\",\"en_dev_api_session_rule.md\":\"e29t-o48\",\"en_dev_api_utils.md\":\"IxF_QKMD\",\"en_dev_best_practices.md\":\"BL1nZ6wX\",\"en_dev_comm.md\":\"BD35_Pc4\",\"en_dev_guide.md\":\"CaoulG2S\",\"en_dev_lyfunc.md\":\"C0J7k9S-\",\"en_dev_plugin.md\":\"CZ1fZOSs\",\"en_dev_resource.md\":\"gbYl02_m\",\"en_index.md\":\"B7vJePRY\",\"en_store_plugin.md\":\"CKMtd26v\",\"en_store_resource.md\":\"B0jzMlOl\",\"en_usage_agreement.md\":\"DB-DF9k9\",\"en_usage_basic.md\":\"CqXCUHon\",\"en_usage_extra.md\":\"NcwXX0cF\",\"index.md\":\"DHOhfNpJ\",\"store_plugin.md\":\"BG-hPX54\",\"store_resource.md\":\"DxmwBnW7\",\"usage_agreement.md\":\"DgIDC_u9\",\"usage_basic.md\":\"D0kl3gm6\",\"usage_extra.md\":\"CsRUq0wh\"}");function deserializeFunctions(r){return Array.isArray(r)?r.map(deserializeFunctions):typeof r=="object"&&r!==null?Object.keys(r).reduce((t,n)=>(t[n]=deserializeFunctions(r[n]),t),{}):typeof r=="string"&&r.startsWith("_vp-fn_")?new Function(`return ${r.slice(7)}`)():r};window.__VP_SITE_DATA__=deserializeFunctions(JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"VitePress\",\"description\":\"A VitePress site\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":{\"light\":\"/liteyuki.svg\",\"dark\":\"/liteyuki-dark.svg\",\"alt\":\"LiteyukiBot Logo\"},\"sidebar\":{\"/dev/\":{\"base\":\"/dev/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"开发指南\",\"link\":\"guide\"},{\"text\":\"资源包开发\",\"link\":\"resource\"},{\"text\":\"轻雪函数\",\"link\":\"lyfunc\"},{\"text\":\"插件开发\",\"link\":\"plugin\"},{\"text\":\"进程通信\",\"link\":\"comm\"},{\"text\":\"最佳实践\",\"link\":\"best_practices\"},{\"text\":\"liteyuki API\",\"link\":\"api/index.md\",\"items\":[{\"text\":\"liteyuki.bot\",\"link\":\"api/bot/index.md\",\"items\":[{\"text\":\"liteyuki.bot\",\"link\":\"api/bot/\"},{\"text\":\"liteyuki.bot.lifespan\",\"link\":\"api/bot/lifespan\"}],\"collapsed\":true},{\"text\":\"liteyuki.comm\",\"link\":\"api/comm/index.md\",\"items\":[{\"text\":\"liteyuki.comm.channel\",\"link\":\"api/comm/channel\"},{\"text\":\"liteyuki.comm.event\",\"link\":\"api/comm/event\"},{\"text\":\"liteyuki.comm\",\"link\":\"api/comm/\"},{\"text\":\"liteyuki.comm.storage\",\"link\":\"api/comm/storage\"}],\"collapsed\":true},{\"text\":\"liteyuki.config\",\"link\":\"api/config\"},{\"text\":\"liteyuki.core\",\"link\":\"api/core/index.md\",\"items\":[{\"text\":\"liteyuki.core\",\"link\":\"api/core/\"},{\"text\":\"liteyuki.core.manager\",\"link\":\"api/core/manager\"}],\"collapsed\":true},{\"text\":\"liteyuki.dev\",\"link\":\"api/dev/index.md\",\"items\":[{\"text\":\"liteyuki.dev\",\"link\":\"api/dev/\"},{\"text\":\"liteyuki.dev.observer\",\"link\":\"api/dev/observer\"},{\"text\":\"liteyuki.dev.plugin\",\"link\":\"api/dev/plugin\"}],\"collapsed\":true},{\"text\":\"liteyuki.exception\",\"link\":\"api/exception\"},{\"text\":\"liteyuki.log\",\"link\":\"api/log\"},{\"text\":\"liteyuki.plugin\",\"link\":\"api/plugin/index.md\",\"items\":[{\"text\":\"liteyuki.plugin\",\"link\":\"api/plugin/\"},{\"text\":\"liteyuki.plugin.load\",\"link\":\"api/plugin/load\"},{\"text\":\"liteyuki.plugin.manager\",\"link\":\"api/plugin/manager\"},{\"text\":\"liteyuki.plugin.model\",\"link\":\"api/plugin/model\"}],\"collapsed\":true},{\"text\":\"liteyuki.plugins\",\"link\":\"api/plugins/index.md\",\"items\":[{\"text\":\"liteyuki.plugins\",\"link\":\"api/plugins/\"},{\"text\":\"liteyuki.plugins.liteecho\",\"link\":\"api/plugins/liteecho\"},{\"text\":\"liteyuki.plugins.plugin_loader\",\"link\":\"api/plugins/plugin_loader/index.md\",\"items\":[{\"text\":\"liteyuki.plugins.plugin_loader\",\"link\":\"api/plugins/plugin_loader/\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"liteyuki.session\",\"link\":\"api/session/index.md\",\"items\":[{\"text\":\"liteyuki.session.event\",\"link\":\"api/session/event\"},{\"text\":\"liteyuki.session\",\"link\":\"api/session/\"},{\"text\":\"liteyuki.session.matcher\",\"link\":\"api/session/matcher\"},{\"text\":\"message\",\"items\":[{\"text\":\"liteyuki.session.message.segments\",\"link\":\"api/session/message/segments\"}],\"collapsed\":true},{\"text\":\"liteyuki.session.models\",\"link\":\"api/session/models\"},{\"text\":\"liteyuki.session.on\",\"link\":\"api/session/on\"},{\"text\":\"liteyuki.session.rule\",\"link\":\"api/session/rule\"}],\"collapsed\":true},{\"text\":\"liteyuki.utils\",\"link\":\"api/utils\"},{\"text\":\"liteyuki API\",\"link\":\"api/\"}],\"collapsed\":true}]}]},\"/store/\":{\"base\":\"/store/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"资源商店\",\"link\":\"resource\"},{\"text\":\"插件商店\",\"link\":\"plugin\"}]}]},\"/usage/\":{\"base\":\"/usage/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"基础插件\",\"link\":\"basic\"},{\"text\":\"功能命令\",\"link\":\"extra\"},{\"text\":\"用户协议\",\"link\":\"agreement\"}]}]},\"/deploy/\":{\"base\":\"/deploy/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"安装\",\"link\":\"install\"},{\"text\":\"配置\",\"link\":\"config\"},{\"text\":\"答疑\",\"link\":\"fandq\"}]}]},\"/en/dev/\":{\"base\":\"/en/dev/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"Development Guide\",\"link\":\"guide\"},{\"text\":\"Resource Pack\",\"link\":\"resource\"},{\"text\":\"Liteyuki Function\",\"link\":\"lyfunc\"},{\"text\":\"Plugin\",\"link\":\"plugin\"},{\"text\":\"Process Communication\",\"link\":\"comm\"},{\"text\":\"Best Practices\",\"link\":\"best_practices\"},{\"text\":\"liteyuki API\",\"link\":\"api/index.md\",\"items\":[{\"text\":\"liteyuki.bot\",\"link\":\"api/bot/index.md\",\"items\":[{\"text\":\"liteyuki.bot\",\"link\":\"api/bot/\"},{\"text\":\"liteyuki.bot.lifespan\",\"link\":\"api/bot/lifespan\"}],\"collapsed\":true},{\"text\":\"liteyuki.comm\",\"link\":\"api/comm/index.md\",\"items\":[{\"text\":\"liteyuki.comm.channel\",\"link\":\"api/comm/channel\"},{\"text\":\"liteyuki.comm.event\",\"link\":\"api/comm/event\"},{\"text\":\"liteyuki.comm\",\"link\":\"api/comm/\"},{\"text\":\"liteyuki.comm.storage\",\"link\":\"api/comm/storage\"}],\"collapsed\":true},{\"text\":\"liteyuki.config\",\"link\":\"api/config\"},{\"text\":\"liteyuki.core\",\"link\":\"api/core/index.md\",\"items\":[{\"text\":\"liteyuki.core\",\"link\":\"api/core/\"},{\"text\":\"liteyuki.core.manager\",\"link\":\"api/core/manager\"}],\"collapsed\":true},{\"text\":\"liteyuki.dev\",\"link\":\"api/dev/index.md\",\"items\":[{\"text\":\"liteyuki.dev\",\"link\":\"api/dev/\"},{\"text\":\"liteyuki.dev.observer\",\"link\":\"api/dev/observer\"},{\"text\":\"liteyuki.dev.plugin\",\"link\":\"api/dev/plugin\"}],\"collapsed\":true},{\"text\":\"liteyuki.exception\",\"link\":\"api/exception\"},{\"text\":\"liteyuki.log\",\"link\":\"api/log\"},{\"text\":\"liteyuki.plugin\",\"link\":\"api/plugin/index.md\",\"items\":[{\"text\":\"liteyuki.plugin\",\"link\":\"api/plugin/\"},{\"text\":\"liteyuki.plugin.load\",\"link\":\"api/plugin/load\"},{\"text\":\"liteyuki.plugin.manager\",\"link\":\"api/plugin/manager\"},{\"text\":\"liteyuki.plugin.model\",\"link\":\"api/plugin/model\"}],\"collapsed\":true},{\"text\":\"liteyuki.plugins\",\"link\":\"api/plugins/index.md\",\"items\":[{\"text\":\"liteyuki.plugins\",\"link\":\"api/plugins/\"},{\"text\":\"liteyuki.plugins.liteecho\",\"link\":\"api/plugins/liteecho\"},{\"text\":\"liteyuki.plugins.plugin_loader\",\"link\":\"api/plugins/plugin_loader/index.md\",\"items\":[{\"text\":\"liteyuki.plugins.plugin_loader\",\"link\":\"api/plugins/plugin_loader/\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"liteyuki.session\",\"link\":\"api/session/index.md\",\"items\":[{\"text\":\"liteyuki.session.event\",\"link\":\"api/session/event\"},{\"text\":\"liteyuki.session\",\"link\":\"api/session/\"},{\"text\":\"liteyuki.session.matcher\",\"link\":\"api/session/matcher\"},{\"text\":\"message\",\"items\":[{\"text\":\"liteyuki.session.message.segments\",\"link\":\"api/session/message/segments\"}],\"collapsed\":true},{\"text\":\"liteyuki.session.models\",\"link\":\"api/session/models\"},{\"text\":\"liteyuki.session.on\",\"link\":\"api/session/on\"},{\"text\":\"liteyuki.session.rule\",\"link\":\"api/session/rule\"}],\"collapsed\":true},{\"text\":\"liteyuki.utils\",\"link\":\"api/utils\"},{\"text\":\"liteyuki API\",\"link\":\"api/\"}],\"collapsed\":true}]}]},\"/en/store/\":{\"base\":\"/en/store/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"Resource Store\",\"link\":\"resource\"},{\"text\":\"Plugin Store\",\"link\":\"plugin\"}]}]},\"/en/usage/\":{\"base\":\"/en/usage/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"基础插件\",\"link\":\"basic\"},{\"text\":\"功能命令\",\"link\":\"extra\"},{\"text\":\"用户协议\",\"link\":\"agreement\"}]}]},\"/en/deploy/\":{\"base\":\"/en/deploy/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"Install\",\"link\":\"install\"},{\"text\":\"Configurations\",\"link\":\"config\"},{\"text\":\"FAQ\",\"link\":\"fandq\"}]}]}},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/LiteyukiStudio/LiteyukiBot\"},{\"icon\":{\"svg\":\"<svg t=\\\"1725391346807\\\" class=\\\"icon\\\" viewBox=\\\"0 0 1025 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" p-id=\\\"5067\\\" width=\\\"256\\\" height=\\\"256\\\"><path d=\\\"M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z\\\" fill=\\\"#a2d8f4\\\" p-id=\\\"5068\\\"></path></svg>\"},\"link\":\"https://git.liteyuki.icu/bot/app\"}],\"search\":{\"provider\":\"local\",\"options\":{\"locales\":{\"root\":{\"translations\":{\"button\":{\"buttonText\":\"搜索文档\",\"buttonAriaLabel\":\"打开搜索框\"},\"modal\":{\"noResultsText\":\"没有找到搜索结果\",\"resetButtonTitle\":\"清除查询条件\",\"footer\":{\"selectText\":\"选择\",\"navigateText\":\"切换\"}}}},\"en\":{\"translations\":{\"button\":{\"buttonText\":\"Search\",\"buttonAriaLabel\":\"Search\"},\"modal\":{\"noResultsText\":\"No results found\",\"resetButtonTitle\":\"Reset search query\",\"footer\":{\"selectText\":\"Select\",\"navigateText\":\"Navigate\"}}}}}}}},\"locales\":{\"root\":{\"label\":\"简体中文\",\"lang\":\"zh-Hans\",\"title\":\"轻雪机器人\",\"description\":\"一个综合性的机器人应用及管理框架\",\"themeConfig\":{\"nav\":[{\"text\":\"部署\",\"link\":\"/deploy/install\"},{\"text\":\"使用\",\"link\":\"/usage/basic\"},{\"text\":\"扩展\",\"link\":\"/store/resource\"},{\"text\":\"开发\",\"link\":\"/dev/guide\"}],\"docFooter\":{\"prev\":\"上一页\",\"next\":\"下一页\"},\"editLink\":{\"pattern\":\"_vp-fn_({ filePath }) => {\\n const regex = /^[^\\\\/]+\\\\/dev\\\\/api/;\\n console.log(filePath);\\n if (regex.test(filePath)) {\\n filePath = filePath.replace(regex, \\\"\\\").replace(\\\"index.md\\\", \\\"__init__.py\\\").replace(\\\".md\\\", \\\".py\\\");\\n if (filePath.split(\\\"/\\\").pop().split(\\\".\\\")[0] === filePath.split(\\\"/\\\").slice(-2, -1)[0]) {\\n filePath = filePath.split(\\\"/\\\").slice(0, -1).join(\\\"/\\\") + \\\"/__init__.py\\\";\\n }\\n return `https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/liteyuki${filePath}`;\\n } else {\\n return `https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/docs/${filePath}`;\\n }\\n }\",\"text\":\"在 GitHub 上编辑此页\"},\"footer\":{\"message\":\"文档由 <a href=\\\"https://vitepress.dev/\\\">VitePress</a> 构建 | API引用由 <a href=\\\"https://github.com/LiteyukiStudio/litedoc\\\">litedoc</a> 生成\",\"copyright\":\"Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved\"},\"outline\":{\"label\":\"页面内容\",\"level\":[2,6]},\"langMenuLabel\":\"语言\",\"returnToTopLabel\":\"返回顶部\",\"sidebarMenuLabel\":\"菜单\",\"darkModeSwitchLabel\":\"主题\",\"lightModeSwitchTitle\":\"轻色模式\",\"darkModeSwitchTitle\":\"深色模式\"}},\"en\":{\"label\":\"English\",\"lang\":\"en-US\",\"title\":\"LiteyukiBot\",\"description\":\"A high-performance, easy-to-use chatbot framework and application\",\"themeConfig\":{\"nav\":[{\"text\":\"Deploy\",\"link\":\"/en/deploy/install\"},{\"text\":\"Usage\",\"link\":\"/en/usage/basic\"},{\"text\":\"Extension\",\"link\":\"/en/store/resource\"},{\"text\":\"Develop\",\"link\":\"/en/dev/guide\"}],\"docFooter\":{\"prev\":\"Prev Page\",\"next\":\"Next Page\"},\"editLink\":{\"pattern\":\"_vp-fn_({ filePath }) => {\\n const regex = /^[^\\\\/]+\\\\/dev\\\\/api/;\\n console.log(filePath);\\n if (regex.test(filePath)) {\\n filePath = filePath.replace(regex, \\\"\\\").replace(\\\"index.md\\\", \\\"__init__.py\\\").replace(\\\".md\\\", \\\".py\\\");\\n if (filePath.split(\\\"/\\\").pop().split(\\\".\\\")[0] === filePath.split(\\\"/\\\").slice(-2, -1)[0]) {\\n filePath = filePath.split(\\\"/\\\").slice(0, -1).join(\\\"/\\\") + \\\"/__init__.py\\\";\\n }\\n return `https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/liteyuki${filePath}`;\\n } else {\\n return `https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/docs/${filePath}`;\\n }\\n }\",\"text\":\"Edit this page on GitHub\"},\"footer\":{\"message\":\"Documentation built with <a href=\\\"https://vitepress.dev/\\\">VitePress</a> | API references generated by <a href=\\\"https://github.com/LiteyukiStudio/litedoc\\\">litedoc</a>\",\"copyright\":\"Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved\"},\"outline\":{\"label\":\"Page Content\",\"level\":[2,6]},\"langMenuLabel\":\"Language\",\"returnToTopLabel\":\"Back to top\",\"sidebarMenuLabel\":\"Menu\",\"darkModeSwitchLabel\":\"Theme\",\"lightModeSwitchTitle\":\"Light Mode\",\"darkModeSwitchTitle\":\"Dark Mode\"}}},\"scrollOffset\":134,\"cleanUrls\":false}"));</script>
</body>
</html>