[{"data":1,"prerenderedAt":1838},["ShallowReactive",2],{"nav-docs-zh":3,"page-/zh/docs/webspace/examples/realtime-gomoku":1157,"surround-/zh/docs/webspace/examples/realtime-gomoku":1832,"raw-/zh/docs/webspace/examples/realtime-gomoku":1835},[4,67,374,775,903,1075,1085,1110],{"title":5,"tags":6,"slug":6,"path":7,"stem":8,"children":9,"page":66,"sourcePath":7},"SpaceBuilder 入门",null,"/getting-started","00.getting-started",[10,15,20,27,34,39,45,50,55,60],{"title":11,"path":12,"stem":13,"tags":6,"slug":14,"sourcePath":12},"SpaceBuilder 简介","/getting-started/overview","00.getting-started/00.overview","/getting-started/overview/",{"title":16,"path":17,"stem":18,"tags":6,"slug":19,"sourcePath":17},"创建 SetFN 账户","/getting-started/create-setfn-account","00.getting-started/05.create-setfn-account","/getting-started/create-setfn-account/",{"title":21,"path":22,"stem":23,"tags":24,"slug":26,"sourcePath":22},"在 Linux 上安装","/getting-started/install-linux","00.getting-started/10.install-linux",[25],"recommended","/getting-started/install-linux/",{"title":28,"path":29,"stem":30,"tags":31,"slug":33,"sourcePath":29},"使用 Docker 安装","/getting-started/install-docker","00.getting-started/12.install-docker",[32],"preparing","/getting-started/install-docker/",{"title":35,"path":36,"stem":37,"tags":6,"slug":38,"sourcePath":36},"在 Windows 上安装","/getting-started/install-windows","00.getting-started/14.install-windows","/getting-started/install-windows/",{"title":40,"path":41,"stem":42,"tags":43,"slug":44,"sourcePath":41},"在 macOS 上安装","/getting-started/install-macos","00.getting-started/16.install-macos",[32],"/getting-started/install-macos/",{"title":46,"path":47,"stem":48,"tags":6,"slug":49,"sourcePath":47},"初始设置","/getting-started/initial-setup","00.getting-started/20.initial-setup","/getting-started/initial-setup/",{"title":51,"path":52,"stem":53,"tags":6,"slug":54,"sourcePath":52},"许可证激活","/getting-started/license-activation","00.getting-started/30.license-activation","/getting-started/license-activation/",{"title":56,"path":57,"stem":58,"tags":6,"slug":59,"sourcePath":57},"查看访问地址（本地/内网）","/getting-started/access-url","00.getting-started/35.access-url","/getting-started/access-url/",{"title":61,"path":62,"stem":63,"tags":64,"slug":65,"sourcePath":62},"选择外部访问方式","/getting-started/access-domain","00.getting-started/40.access-domain",[25],"/getting-started/access-domain/",false,{"title":68,"tags":6,"slug":6,"path":69,"stem":70,"children":71,"page":66,"sourcePath":69},"管理空间","/admin","10.admin",[72,92,162,197,249,274,289,299,339],{"title":73,"tags":6,"slug":6,"path":74,"stem":75,"children":76,"page":66,"sourcePath":74},"管理员首页","/admin/home","10.admin/00.home",[77,82,87],{"title":78,"path":79,"stem":80,"tags":6,"slug":81,"sourcePath":79},"访问管理员页面","/admin/home/admin-page-access","10.admin/00.home/00.admin-page-access","/admin/home/admin-page-access/",{"title":83,"path":69,"stem":84,"tags":6,"slug":85,"sourcePath":86},"管理员菜单导览","10.admin/00.home/00.overview","/admin/","/admin/home/overview",{"title":88,"path":89,"stem":90,"tags":6,"slug":91,"sourcePath":89},"许可证管理","/admin/home/license","10.admin/00.home/20.license","/admin/home/license/",{"title":93,"tags":6,"slug":6,"path":94,"stem":95,"children":96,"page":66,"sourcePath":94},"用户管理","/admin/user-management","10.admin/10.user-management",[97,102,107,112,117,122,127,132,137,142,147,152,157],{"title":98,"path":99,"stem":100,"tags":6,"slug":101,"sourcePath":99},"设置注册策略和默认权限","/admin/user-management/signup-policy","10.admin/10.user-management/02.signup-policy","/admin/user-management/signup-policy/",{"title":103,"path":104,"stem":105,"tags":6,"slug":106,"sourcePath":104},"登记注册条款","/admin/user-management/signup-terms","10.admin/10.user-management/04.signup-terms","/admin/user-management/signup-terms/",{"title":108,"path":109,"stem":110,"tags":6,"slug":111,"sourcePath":109},"创建用户账户","/admin/user-management/invite-new-member","10.admin/10.user-management/10.invite-new-member","/admin/user-management/invite-new-member/",{"title":113,"path":114,"stem":115,"tags":6,"slug":116,"sourcePath":114},"修改用户账户","/admin/user-management/edit-member","10.admin/10.user-management/11.edit-member","/admin/user-management/edit-member/",{"title":118,"path":119,"stem":120,"tags":6,"slug":121,"sourcePath":119},"添加管理员","/admin/user-management/add-new-admin","10.admin/10.user-management/12.add-new-admin","/admin/user-management/add-new-admin/",{"title":123,"path":124,"stem":125,"tags":6,"slug":126,"sourcePath":124},"团队管理","/admin/user-management/team","10.admin/10.user-management/22.team","/admin/user-management/team/",{"title":128,"path":129,"stem":130,"tags":6,"slug":131,"sourcePath":129},"等级管理","/admin/user-management/level","10.admin/10.user-management/24.level","/admin/user-management/level/",{"title":133,"path":134,"stem":135,"tags":6,"slug":136,"sourcePath":134},"查看访问日志","/admin/user-management/access-log","10.admin/10.user-management/30.access-log","/admin/user-management/access-log/",{"title":138,"path":139,"stem":140,"tags":6,"slug":141,"sourcePath":139},"管理活跃设备","/admin/user-management/active-devices","10.admin/10.user-management/31.active-devices","/admin/user-management/active-devices/",{"title":143,"path":144,"stem":145,"tags":6,"slug":146,"sourcePath":144},"设置账户与安全策略","/admin/user-management/account-security","10.admin/10.user-management/32.account-security","/admin/user-management/account-security/",{"title":148,"path":149,"stem":150,"tags":6,"slug":151,"sourcePath":149},"设置人机验证（CAPTCHA）","/admin/user-management/captcha","10.admin/10.user-management/33.captcha","/admin/user-management/captcha/",{"title":153,"path":154,"stem":155,"tags":6,"slug":156,"sourcePath":154},"设置通知发送","/admin/user-management/notice-settings","10.admin/10.user-management/34.notice-settings","/admin/user-management/notice-settings/",{"title":158,"path":159,"stem":160,"tags":6,"slug":161,"sourcePath":159},"向成员群发通知邮件","/admin/user-management/bulk-mail","10.admin/10.user-management/36.bulk-mail","/admin/user-management/bulk-mail/",{"title":163,"tags":6,"slug":6,"path":164,"stem":165,"children":166,"page":66,"sourcePath":164},"服务配置","/admin/service-config","10.admin/20.service-config",[167,172,177,182,187,192],{"title":168,"path":169,"stem":170,"tags":6,"slug":171,"sourcePath":169},"文件区域设置","/admin/service-config/file-area","10.admin/20.service-config/10.file-area","/admin/service-config/file-area/",{"title":173,"path":174,"stem":175,"tags":6,"slug":176,"sourcePath":174},"Webhook 设置","/admin/service-config/webhook-settings","10.admin/20.service-config/16.webhook-settings","/admin/service-config/webhook-settings/",{"title":178,"path":179,"stem":180,"tags":6,"slug":181,"sourcePath":179},"社区设置","/admin/service-config/community-space","10.admin/20.service-config/22.community-space","/admin/service-config/community-space/",{"title":183,"path":184,"stem":185,"tags":6,"slug":186,"sourcePath":184},"AI 聊天机器人策略设置","/admin/service-config/community-ai-chatbot","10.admin/20.service-config/24.community-ai-chatbot","/admin/service-config/community-ai-chatbot/",{"title":188,"path":189,"stem":190,"tags":6,"slug":191,"sourcePath":189},"邮件设置","/admin/service-config/email-settings","10.admin/20.service-config/30.email-settings","/admin/service-config/email-settings/",{"title":193,"path":194,"stem":195,"tags":6,"slug":196,"sourcePath":194},"品牌设置","/admin/service-config/brand","10.admin/20.service-config/40.brand","/admin/service-config/brand/",{"title":198,"tags":6,"slug":6,"path":199,"stem":200,"children":201,"page":66,"sourcePath":199},"知识服务","/admin/knowledge","10.admin/30.knowledge",[202,207,214,219,224,229,234,239,244],{"title":203,"path":199,"stem":204,"tags":6,"slug":205,"sourcePath":206},"了解知识服务","10.admin/30.knowledge/00.overview","/admin/knowledge/","/admin/knowledge/overview",{"title":208,"path":209,"stem":210,"children":211,"tags":6,"slug":213,"sourcePath":209},"采集与索引","/admin/knowledge/indexing","10.admin/30.knowledge/10.indexing",[212],{"title":208,"path":209,"stem":210,"tags":6,"slug":213,"sourcePath":209},"/admin/knowledge/indexing/",{"title":215,"path":216,"stem":217,"tags":6,"slug":218,"sourcePath":216},"搜索质量与语言","/admin/knowledge/search","10.admin/30.knowledge/20.search","/admin/knowledge/search/",{"title":220,"path":221,"stem":222,"tags":6,"slug":223,"sourcePath":221},"知识存储","/admin/knowledge/storage","10.admin/30.knowledge/30.storage","/admin/knowledge/storage/",{"title":225,"path":226,"stem":227,"tags":6,"slug":228,"sourcePath":226},"知识存储运维","/admin/knowledge/storage-operations","10.admin/30.knowledge/32.storage-operations","/admin/knowledge/storage-operations/",{"title":230,"path":231,"stem":232,"tags":6,"slug":233,"sourcePath":231},"连接 Qdrant","/admin/knowledge/qdrant","10.admin/30.knowledge/34.qdrant","/admin/knowledge/qdrant/",{"title":235,"path":236,"stem":237,"tags":6,"slug":238,"sourcePath":236},"准备 Qdrant 服务器","/admin/knowledge/qdrant-server-setup","10.admin/30.knowledge/35.qdrant-server-setup","/admin/knowledge/qdrant-server-setup/",{"title":240,"path":241,"stem":242,"tags":6,"slug":243,"sourcePath":241},"连接 Milvus","/admin/knowledge/milvus","10.admin/30.knowledge/36.milvus","/admin/knowledge/milvus/",{"title":245,"path":246,"stem":247,"tags":6,"slug":248,"sourcePath":246},"外部搜索与依据","/admin/knowledge/web-search","10.admin/30.knowledge/40.web-search","/admin/knowledge/web-search/",{"title":250,"tags":6,"slug":6,"path":251,"stem":252,"children":253,"page":66,"sourcePath":251},"AI 服务","/admin/ai","10.admin/35.ai",[254,259,264,269],{"title":255,"path":251,"stem":256,"tags":6,"slug":257,"sourcePath":258},"管理 AI 服务","10.admin/35.ai/00.overview","/admin/ai/","/admin/ai/overview",{"title":260,"path":261,"stem":262,"tags":6,"slug":263,"sourcePath":261},"设置模型与运行时","/admin/ai/models","10.admin/35.ai/10.models","/admin/ai/models/",{"title":265,"path":266,"stem":267,"tags":6,"slug":268,"sourcePath":266},"设置工具与集成","/admin/ai/integrations","10.admin/35.ai/20.integrations","/admin/ai/integrations/",{"title":270,"path":271,"stem":272,"tags":6,"slug":273,"sourcePath":271},"管理 MCP 服务器","/admin/ai/mcp","10.admin/35.ai/30.mcp","/admin/ai/mcp/",{"title":275,"tags":6,"slug":6,"path":276,"stem":277,"children":278,"page":66,"sourcePath":276},"插件","/admin/plugin","10.admin/40.plugin",[279,284],{"title":280,"path":281,"stem":282,"tags":6,"slug":283,"sourcePath":281},"管理插件","/admin/plugin/overview","10.admin/40.plugin/00.overview","/admin/plugin/overview/",{"title":285,"path":286,"stem":287,"tags":6,"slug":288,"sourcePath":286},"扩展插件设置","/admin/plugin/settings","10.admin/40.plugin/10.settings","/admin/plugin/settings/",{"title":290,"path":291,"stem":292,"children":293,"page":66,"sourcePath":291},"Operations","/admin/operations","10.admin/45.operations",[294],{"title":295,"path":291,"stem":296,"tags":6,"slug":297,"sourcePath":298},"查看运维与审计记录","10.admin/45.operations/00.overview","/admin/operations/","/admin/operations/overview",{"title":300,"tags":6,"slug":6,"path":301,"stem":302,"children":303,"page":66,"sourcePath":301},"安全管理","/admin/security","10.admin/50.security",[304,309,314,319,324,329,334],{"title":305,"path":306,"stem":307,"tags":6,"slug":308,"sourcePath":306},"安全概览","/admin/security/overview","10.admin/50.security/00.overview","/admin/security/overview/",{"title":310,"path":311,"stem":312,"tags":6,"slug":313,"sourcePath":311},"查看审计日志","/admin/security/audit-log","10.admin/50.security/05.audit-log","/admin/security/audit-log/",{"title":315,"path":316,"stem":317,"tags":6,"slug":318,"sourcePath":316},"屏蔽管理","/admin/security/block-management","10.admin/50.security/10.block-management","/admin/security/block-management/",{"title":320,"path":321,"stem":322,"tags":6,"slug":323,"sourcePath":321},"安全设置","/admin/security/security-setting","10.admin/50.security/12.security-setting","/admin/security/security-setting/",{"title":325,"path":326,"stem":327,"tags":6,"slug":328,"sourcePath":326},"处理待批准设备","/admin/security/device-approvals","10.admin/50.security/14.device-approvals","/admin/security/device-approvals/",{"title":330,"path":331,"stem":332,"tags":6,"slug":333,"sourcePath":331},"IP 访问限制","/admin/security/ip-restriction","10.admin/50.security/16.ip-restriction","/admin/security/ip-restriction/",{"title":335,"path":336,"stem":337,"tags":6,"slug":338,"sourcePath":336},"设置管理员两步验证","/admin/security/two-factor-auth","10.admin/50.security/18.two-factor-auth","/admin/security/two-factor-auth/",{"title":340,"tags":6,"slug":6,"path":341,"stem":342,"children":343,"page":66,"sourcePath":341},"系统管理","/admin/system-admin","10.admin/60.system-admin",[344,349,354,359,364,369],{"title":345,"path":346,"stem":347,"tags":6,"slug":348,"sourcePath":346},"设备信息","/admin/system-admin/device-info","10.admin/60.system-admin/10.device-info","/admin/system-admin/device-info/",{"title":350,"path":351,"stem":352,"tags":6,"slug":353,"sourcePath":351},"服务器重启与系统维护","/admin/system-admin/server-restart","10.admin/60.system-admin/12.server-restart","/admin/system-admin/server-restart/",{"title":355,"path":356,"stem":357,"tags":6,"slug":358,"sourcePath":356},"后台服务","/admin/system-admin/background-service","10.admin/60.system-admin/14.background-service","/admin/system-admin/background-service/",{"title":360,"path":361,"stem":362,"tags":6,"slug":363,"sourcePath":361},"更新 SpaceBuilder","/admin/system-admin/update","10.admin/60.system-admin/16.update","/admin/system-admin/update/",{"title":365,"path":366,"stem":367,"tags":6,"slug":368,"sourcePath":366},"卸载 SpaceBuilder","/admin/system-admin/uninstall","10.admin/60.system-admin/18.uninstall","/admin/system-admin/uninstall/",{"title":370,"path":371,"stem":372,"tags":6,"slug":373,"sourcePath":371},"迁移服务器","/admin/system-admin/server-migration","10.admin/60.system-admin/20.server-migration","/admin/system-admin/server-migration/",{"title":375,"tags":6,"slug":6,"path":376,"stem":377,"children":378,"page":66,"sourcePath":376},"使用工作空间","/workspace","20.workspace",[379,419,439,523,662,718,754],{"title":380,"tags":6,"slug":6,"path":381,"stem":382,"children":383,"page":66,"sourcePath":381},"菜单","/workspace/menu","20.workspace/05.menu",[384,389,394,399,404,409,414],{"title":385,"path":386,"stem":387,"tags":6,"slug":388,"sourcePath":386},"工作空间简介","/workspace/menu/overview","20.workspace/05.menu/00.overview","/workspace/menu/overview/",{"title":390,"path":391,"stem":392,"tags":6,"slug":393,"sourcePath":391},"团队空间","/workspace/menu/team-space","20.workspace/05.menu/05.team-space","/workspace/menu/team-space/",{"title":395,"path":396,"stem":397,"tags":6,"slug":398,"sourcePath":396},"客户端空间","/workspace/menu/client-space","20.workspace/05.menu/06.client-space","/workspace/menu/client-space/",{"title":400,"path":401,"stem":402,"tags":6,"slug":403,"sourcePath":401},"收藏夹","/workspace/menu/favorites","20.workspace/05.menu/10.favorites","/workspace/menu/favorites/",{"title":405,"path":406,"stem":407,"tags":6,"slug":408,"sourcePath":406},"最近文档","/workspace/menu/recent","20.workspace/05.menu/20.recent","/workspace/menu/recent/",{"title":410,"path":411,"stem":412,"tags":6,"slug":413,"sourcePath":411},"外部共享","/workspace/menu/external-share","20.workspace/05.menu/30.external-share","/workspace/menu/external-share/",{"title":415,"path":416,"stem":417,"tags":6,"slug":418,"sourcePath":416},"回收站","/workspace/menu/trash","20.workspace/05.menu/40.trash","/workspace/menu/trash/",{"title":420,"tags":6,"slug":6,"path":421,"stem":422,"children":423,"page":66,"sourcePath":421},"账户","/workspace/account","20.workspace/10.account",[424,429,434],{"title":425,"path":426,"stem":427,"tags":6,"slug":428,"sourcePath":426},"注册与登录","/workspace/account/signup","20.workspace/10.account/10.signup","/workspace/account/signup/",{"title":430,"path":431,"stem":432,"tags":6,"slug":433,"sourcePath":431},"重置密码","/workspace/account/reset-password","20.workspace/10.account/20.reset-password","/workspace/account/reset-password/",{"title":435,"path":436,"stem":437,"tags":6,"slug":438,"sourcePath":436},"账户设置","/workspace/account/account-settings","20.workspace/10.account/30.account-settings","/workspace/account/account-settings/",{"title":440,"tags":6,"slug":6,"path":441,"stem":442,"children":443,"page":66,"sourcePath":441},"文件夹","/workspace/folder","20.workspace/20.folder",[444,449,454,459,464,471,476,481,486,491,496,501,506,511,518],{"title":445,"path":446,"stem":447,"tags":6,"slug":448,"sourcePath":446},"文件夹基本功能","/workspace/folder/basic","20.workspace/20.folder/10.basic","/workspace/folder/basic/",{"title":450,"path":451,"stem":452,"tags":6,"slug":453,"sourcePath":451},"一次创建多个文件夹","/workspace/folder/bulk-folder-creation","20.workspace/20.folder/12.bulk-folder-creation","/workspace/folder/bulk-folder-creation/",{"title":455,"path":456,"stem":457,"tags":6,"slug":458,"sourcePath":456},"筛选","/workspace/folder/filter","20.workspace/20.folder/13.filter","/workspace/folder/filter/",{"title":460,"path":461,"stem":462,"tags":6,"slug":463,"sourcePath":461},"文件夹视图选项设置","/workspace/folder/folder-view-options","20.workspace/20.folder/14.folder-view-options","/workspace/folder/folder-view-options/",{"title":465,"path":466,"stem":467,"tags":468,"slug":470,"sourcePath":466},"将文件夹用作公告板","/workspace/folder/board-view","20.workspace/20.folder/15.board-view",[469],"hot","/workspace/folder/board-view/",{"title":472,"path":473,"stem":474,"tags":6,"slug":475,"sourcePath":473},"文件夹网页视图","/workspace/folder/folder-web-view","20.workspace/20.folder/16.folder-web-view","/workspace/folder/folder-web-view/",{"title":477,"path":478,"stem":479,"tags":6,"slug":480,"sourcePath":478},"整理文件夹","/workspace/folder/folder-organize","20.workspace/20.folder/17.folder-organize","/workspace/folder/folder-organize/",{"title":482,"path":483,"stem":484,"tags":6,"slug":485,"sourcePath":483},"文件夹公告（README）","/workspace/folder/folder-readme","20.workspace/20.folder/18.folder-readme","/workspace/folder/folder-readme/",{"title":487,"path":488,"stem":489,"tags":6,"slug":490,"sourcePath":488},"导出文件夹/文件列表","/workspace/folder/folder-export","20.workspace/20.folder/20.folder-export","/workspace/folder/folder-export/",{"title":492,"path":493,"stem":494,"tags":6,"slug":495,"sourcePath":493},"按等级设置访问权限","/workspace/folder/level-access-permissions","20.workspace/20.folder/24.level-access-permissions","/workspace/folder/level-access-permissions/",{"title":497,"path":498,"stem":499,"tags":6,"slug":500,"sourcePath":498},"按团队设置访问权限","/workspace/folder/team-access-permissions","20.workspace/20.folder/26.team-access-permissions","/workspace/folder/team-access-permissions/",{"title":502,"path":503,"stem":504,"tags":6,"slug":505,"sourcePath":503},"设置文件规则","/workspace/folder/file-rules","20.workspace/20.folder/28.file-rules","/workspace/folder/file-rules/",{"title":507,"path":508,"stem":509,"tags":6,"slug":510,"sourcePath":508},"文件夹 Webhook","/workspace/folder/webhook","20.workspace/20.folder/30.webhook","/workspace/folder/webhook/",{"title":512,"path":513,"stem":514,"children":515,"tags":6,"slug":517,"sourcePath":513},"设置文件夹知识索引","/workspace/folder/knowledge-index","20.workspace/20.folder/32.knowledge-index",[516],{"title":512,"path":513,"stem":514,"tags":6,"slug":517,"sourcePath":513},"/workspace/folder/knowledge-index/",{"title":519,"path":520,"stem":521,"tags":6,"slug":522,"sourcePath":520},"业务自动化文件夹","/workspace/folder/automation","20.workspace/20.folder/40.automation","/workspace/folder/automation/",{"title":524,"tags":6,"slug":6,"path":525,"stem":526,"children":527,"page":66,"sourcePath":525},"文件","/workspace/file","20.workspace/30.file",[528,533,538,543,548,553,558,563,568,573,578,583,588,593,598,603,608,613,618,623,628,633,637,642,647,652,657],{"title":529,"path":530,"stem":531,"tags":6,"slug":532,"sourcePath":530},"文件管理基本功能","/workspace/file/overview","20.workspace/30.file/00.overview","/workspace/file/overview/",{"title":534,"path":535,"stem":536,"tags":6,"slug":537,"sourcePath":535},"边看文件边查看列表","/workspace/file/list-in-file","20.workspace/30.file/05.list-in-file","/workspace/file/list-in-file/",{"title":539,"path":540,"stem":541,"tags":6,"slug":542,"sourcePath":540},"查看和编辑 Markdown、文本文件","/workspace/file/text-file-viewer","20.workspace/30.file/10.text-file-viewer","/workspace/file/text-file-viewer/",{"title":544,"path":545,"stem":546,"tags":6,"slug":547,"sourcePath":545},"查看 HTML 文件","/workspace/file/html-viewer","20.workspace/30.file/11.html-viewer","/workspace/file/html-viewer/",{"title":549,"path":550,"stem":551,"tags":6,"slug":552,"sourcePath":550},"查看和编辑 CSV 文件","/workspace/file/csv-viewer","20.workspace/30.file/12.csv-viewer","/workspace/file/csv-viewer/",{"title":554,"path":555,"stem":556,"tags":6,"slug":557,"sourcePath":555},"查看图片/视频文件","/workspace/file/image-file-viewer","20.workspace/30.file/13.image-file-viewer","/workspace/file/image-file-viewer/",{"title":559,"path":560,"stem":561,"tags":6,"slug":562,"sourcePath":560},"查看 Office/PDF 文件","/workspace/file/office-viewer","20.workspace/30.file/14.office-viewer","/workspace/file/office-viewer/",{"title":564,"path":565,"stem":566,"tags":6,"slug":567,"sourcePath":565},"粘贴网页 (HTML)","/workspace/file/paste-html","20.workspace/30.file/20.paste-html","/workspace/file/paste-html/",{"title":569,"path":570,"stem":571,"tags":6,"slug":572,"sourcePath":570},"粘贴截图","/workspace/file/paste-screenshot","20.workspace/30.file/21.paste-screenshot","/workspace/file/paste-screenshot/",{"title":574,"path":575,"stem":576,"tags":6,"slug":577,"sourcePath":575},"粘贴 Markdown (MD)","/workspace/file/paste-md","20.workspace/30.file/22.paste-md","/workspace/file/paste-md/",{"title":579,"path":580,"stem":581,"tags":6,"slug":582,"sourcePath":580},"屏幕录制","/workspace/file/screen-recording","20.workspace/30.file/23.screen-recording","/workspace/file/screen-recording/",{"title":584,"path":585,"stem":586,"tags":6,"slug":587,"sourcePath":585},"快捷笔记","/workspace/file/quick-note","20.workspace/30.file/24.quick-note","/workspace/file/quick-note/",{"title":589,"path":590,"stem":591,"tags":6,"slug":592,"sourcePath":590},"文件标签","/workspace/file/file-tag","20.workspace/30.file/33.file-tag","/workspace/file/file-tag/",{"title":594,"path":595,"stem":596,"tags":6,"slug":597,"sourcePath":595},"批量重命名文件","/workspace/file/bulk-name-revise","20.workspace/30.file/34.bulk-name-revise","/workspace/file/bulk-name-revise/",{"title":599,"path":600,"stem":601,"tags":6,"slug":602,"sourcePath":600},"文件转换","/workspace/file/file-convert-overview","20.workspace/30.file/40.file-convert-overview","/workspace/file/file-convert-overview/",{"title":604,"path":605,"stem":606,"tags":6,"slug":607,"sourcePath":605},"模板文件","/workspace/file/templates","20.workspace/30.file/41.templates","/workspace/file/templates/",{"title":609,"path":610,"stem":611,"tags":6,"slug":612,"sourcePath":610},"待办列表 (Todo)","/workspace/file/template-todo","20.workspace/30.file/42.template-todo","/workspace/file/template-todo/",{"title":614,"path":615,"stem":616,"tags":6,"slug":617,"sourcePath":615},"审批表单","/workspace/file/template-approval","20.workspace/30.file/43.template-approval","/workspace/file/template-approval/",{"title":619,"path":620,"stem":621,"tags":6,"slug":622,"sourcePath":620},"看板 (Kanban)","/workspace/file/template-kanban","20.workspace/30.file/44.template-kanban","/workspace/file/template-kanban/",{"title":624,"path":625,"stem":626,"tags":6,"slug":627,"sourcePath":625},"时间线","/workspace/file/template-timeline","20.workspace/30.file/45.template-timeline","/workspace/file/template-timeline/",{"title":629,"path":630,"stem":631,"tags":6,"slug":632,"sourcePath":630},"记事本","/workspace/file/template-memo","20.workspace/30.file/46.template-memo","/workspace/file/template-memo/",{"title":634,"path":635,"stem":636,"tags":6,"slug":635,"sourcePath":635},"AI 聊天文件","/workspace/file/ai-chat-file","20.workspace/30.file/47.ai-chat-file",{"title":638,"path":639,"stem":640,"tags":6,"slug":641,"sourcePath":639},"查看文件更改记录","/workspace/file/audit-trail","20.workspace/30.file/50.audit-trail","/workspace/file/audit-trail/",{"title":643,"path":644,"stem":645,"tags":6,"slug":646,"sourcePath":644},"文件版本管理","/workspace/file/version-trail","20.workspace/30.file/51.version-trail","/workspace/file/version-trail/",{"title":648,"path":649,"stem":650,"tags":6,"slug":651,"sourcePath":649},"编辑锁定","/workspace/file/file-lock","20.workspace/30.file/52.file-lock","/workspace/file/file-lock/",{"title":653,"path":654,"stem":655,"tags":6,"slug":656,"sourcePath":654},"文件加密","/workspace/file/file-encrypt","20.workspace/30.file/53.file-encrypt","/workspace/file/file-encrypt/",{"title":658,"path":659,"stem":660,"tags":6,"slug":661,"sourcePath":659},"注册磁盘文件","/workspace/file/disk-file-registration","20.workspace/30.file/60.disk-file-registration","/workspace/file/disk-file-registration/",{"title":663,"tags":6,"slug":6,"path":664,"stem":665,"children":666,"page":66,"sourcePath":664},"协作","/workspace/cooperation","20.workspace/35.cooperation",[667,672,677,682,687,692,697,702,707,713],{"title":668,"path":669,"stem":670,"tags":6,"slug":671,"sourcePath":669},"文件与文件夹评论","/workspace/cooperation/file-comments","20.workspace/35.cooperation/00.file-comments","/workspace/cooperation/file-comments/",{"title":673,"path":674,"stem":675,"tags":6,"slug":676,"sourcePath":674},"聊天","/workspace/cooperation/chat","20.workspace/35.cooperation/10.chat","/workspace/cooperation/chat/",{"title":678,"path":679,"stem":680,"tags":6,"slug":681,"sourcePath":679},"协作聊天与编辑锁定","/workspace/cooperation/collaboration-chat","20.workspace/35.cooperation/11.collaboration-chat","/workspace/cooperation/collaboration-chat/",{"title":683,"path":684,"stem":685,"tags":6,"slug":686,"sourcePath":684},"跟随团队成员的工作位置","/workspace/cooperation/follow-team-location","20.workspace/35.cooperation/12.follow-team-location","/workspace/cooperation/follow-team-location/",{"title":688,"path":689,"stem":690,"tags":6,"slug":691,"sourcePath":689},"提及","/workspace/cooperation/mention","20.workspace/35.cooperation/14.mention","/workspace/cooperation/mention/",{"title":693,"path":694,"stem":695,"tags":6,"slug":696,"sourcePath":694},"私信","/workspace/cooperation/dm","20.workspace/35.cooperation/16.dm","/workspace/cooperation/dm/",{"title":698,"path":699,"stem":700,"tags":6,"slug":701,"sourcePath":699},"通知存档","/workspace/cooperation/notification-inbox","20.workspace/35.cooperation/18.notification-inbox","/workspace/cooperation/notification-inbox/",{"title":703,"path":704,"stem":705,"tags":6,"slug":706,"sourcePath":704},"查看团队动态","/workspace/cooperation/file-activity","20.workspace/35.cooperation/30.file-activity","/workspace/cooperation/file-activity/",{"title":708,"path":709,"stem":710,"tags":711,"slug":712,"sourcePath":709},"创建外部共享链接","/workspace/cooperation/share-link-creation","20.workspace/35.cooperation/40.share-link-creation",[469],"/workspace/cooperation/share-link-creation/",{"title":714,"path":715,"stem":716,"tags":6,"slug":717,"sourcePath":715},"通过电子邮件发送外部共享链接","/workspace/cooperation/share-link-email","20.workspace/35.cooperation/42.share-link-email","/workspace/cooperation/share-link-email/",{"title":719,"tags":6,"slug":6,"path":720,"stem":721,"children":722,"page":66,"sourcePath":720},"搜索","/workspace/search","20.workspace/40.search",[723,728,734,739,744,749],{"title":724,"path":725,"stem":726,"tags":6,"slug":727,"sourcePath":725},"文件搜索","/workspace/search/search","20.workspace/40.search/00.search","/workspace/search/search/",{"title":729,"path":730,"stem":731,"tags":732,"slug":733,"sourcePath":730},"上下文搜索（AI 搜索）","/workspace/search/context-search","20.workspace/40.search/10.context-search",[469],"/workspace/search/context-search/",{"title":735,"path":736,"stem":737,"tags":6,"slug":738,"sourcePath":736},"图片搜索","/workspace/search/image-search","20.workspace/40.search/20.image-search","/workspace/search/image-search/",{"title":740,"path":741,"stem":742,"tags":6,"slug":743,"sourcePath":741},"聊天搜索","/workspace/search/chat-search","20.workspace/40.search/30.chat-search","/workspace/search/chat-search/",{"title":745,"path":746,"stem":747,"tags":6,"slug":748,"sourcePath":746},"评论搜索","/workspace/search/comment-search","20.workspace/40.search/40.comment-search","/workspace/search/comment-search/",{"title":750,"path":751,"stem":752,"tags":6,"slug":753,"sourcePath":751},"同义词搜索","/workspace/search/synonym-search","20.workspace/40.search/50.synonym-search","/workspace/search/synonym-search/",{"title":755,"tags":6,"slug":6,"path":756,"stem":757,"children":758,"page":66,"sourcePath":756},"AI","/workspace/ai","20.workspace/50.ai",[759,764,770],{"title":760,"path":761,"stem":762,"tags":6,"slug":763,"sourcePath":761},"AI 功能概览","/workspace/ai/overview","20.workspace/50.ai/00.overview","/workspace/ai/overview/",{"title":765,"path":766,"stem":767,"tags":768,"slug":769,"sourcePath":766},"向本地 AI 委托工作","/workspace/ai/ai-work","20.workspace/50.ai/10.ai-work",[469],"/workspace/ai/ai-work/",{"title":771,"path":772,"stem":773,"tags":6,"slug":774,"sourcePath":772},"使用外部 AI","/workspace/ai/external-ai","20.workspace/50.ai/20.external-ai","/workspace/ai/external-ai/",{"title":776,"tags":6,"slug":6,"path":777,"stem":778,"children":779,"page":66,"sourcePath":777},"Webspace","/webspace","40.webspace",[780,785,790,795,800,805,811,816,821,826,831,866],{"title":781,"path":782,"stem":783,"tags":6,"slug":784,"sourcePath":782},"什么是 Webspace？","/webspace/overview","40.webspace/00.overview","/webspace/overview/",{"title":786,"path":787,"stem":788,"tags":6,"slug":789,"sourcePath":787},"部署网站","/webspace/website-release","40.webspace/10.website-release","/webspace/website-release/",{"title":791,"path":792,"stem":793,"tags":6,"slug":794,"sourcePath":792},"创建架构文件（.sfn）","/webspace/create-database","40.webspace/20.create-database","/webspace/create-database/",{"title":796,"path":797,"stem":798,"tags":6,"slug":799,"sourcePath":797},"构建 API 并部署数据库","/webspace/api-overview","40.webspace/24.api-overview","/webspace/api-overview/",{"title":801,"path":802,"stem":803,"tags":6,"slug":804,"sourcePath":802},"查看前端示例","/webspace/frontend-example","40.webspace/26.frontend-example","/webspace/frontend-example/",{"title":806,"path":807,"stem":808,"tags":809,"slug":810,"sourcePath":807},"创建团队内部 Web 服务","/webspace/internal-webservice","40.webspace/32.internal-webservice",[469],"/webspace/internal-webservice/",{"title":812,"path":813,"stem":814,"tags":6,"slug":815,"sourcePath":813},"创建对外公开的 Web 服务","/webspace/external-webservice","40.webspace/34.external-webservice","/webspace/external-webservice/",{"title":817,"path":818,"stem":819,"tags":6,"slug":820,"sourcePath":818},"SQL 导入与导出","/webspace/sql-converter","40.webspace/42.sql-converter","/webspace/sql-converter/",{"title":822,"path":823,"stem":824,"tags":6,"slug":825,"sourcePath":823},"将架构转换为代码","/webspace/code-converter","40.webspace/44.code-converter","/webspace/code-converter/",{"title":827,"path":828,"stem":829,"tags":6,"slug":830,"sourcePath":828},"性能与扩展","/webspace/performance","40.webspace/48.performance","/webspace/performance/",{"title":832,"tags":6,"slug":6,"path":833,"stem":834,"children":835,"page":66,"sourcePath":833},"Webspace 管理","/webspace/admin","40.webspace/50.admin",[836,841,846,851,856,861],{"title":837,"path":838,"stem":839,"tags":6,"slug":840,"sourcePath":838},"开始使用 Webspace 管理","/webspace/admin/overview","40.webspace/50.admin/00.overview","/webspace/admin/overview/",{"title":842,"path":843,"stem":844,"tags":6,"slug":845,"sourcePath":843},"运营概览","/webspace/admin/operations","40.webspace/50.admin/10.operations","/webspace/admin/operations/",{"title":847,"path":848,"stem":849,"tags":6,"slug":850,"sourcePath":848},"工作空间访问","/webspace/admin/workspace-access","40.webspace/50.admin/20.workspace-access","/webspace/admin/workspace-access/",{"title":852,"path":853,"stem":854,"tags":6,"slug":855,"sourcePath":853},"API · 站点安全","/webspace/admin/api-site-security","40.webspace/50.admin/30.api-site-security","/webspace/admin/api-site-security/",{"title":857,"path":858,"stem":859,"tags":6,"slug":860,"sourcePath":858},"服务与容量","/webspace/admin/service-capacity","40.webspace/50.admin/40.service-capacity","/webspace/admin/service-capacity/",{"title":862,"path":863,"stem":864,"tags":6,"slug":865,"sourcePath":863},"部署管理与前端发布","/webspace/admin/deployments","40.webspace/50.admin/50.deployments","/webspace/admin/deployments/",{"title":867,"tags":868,"slug":6,"path":869,"stem":870,"children":871,"page":66,"sourcePath":869},"Webspace 实操教程",[469],"/webspace/examples","40.webspace/60.examples",[872,877,882,888,893,898],{"title":873,"path":869,"stem":874,"tags":6,"slug":875,"sourcePath":876},"Webspace 应用篇","40.webspace/60.examples/00.overview","/webspace/examples/","/webspace/examples/overview",{"title":878,"path":879,"stem":880,"tags":6,"slug":881,"sourcePath":879},"打造自己的业务系统","/webspace/examples/my-own-system","40.webspace/60.examples/10.my-own-system","/webspace/examples/my-own-system/",{"title":883,"path":884,"stem":885,"tags":886,"slug":887,"sourcePath":884},"制作实时五子棋游戏","/webspace/examples/realtime-gomoku","40.webspace/60.examples/20.realtime-gomoku",[469],"/webspace/examples/realtime-gomoku/",{"title":889,"path":890,"stem":891,"tags":6,"slug":892,"sourcePath":890},"用文件夹文件搭建资料公告板","/webspace/examples/folder-board","40.webspace/60.examples/30.folder-board","/webspace/examples/folder-board/",{"title":894,"path":895,"stem":896,"tags":6,"slug":897,"sourcePath":895},"搭建多人协同怪物讨伐","/webspace/examples/monster-raid","40.webspace/60.examples/40.monster-raid","/webspace/examples/monster-raid/",{"title":899,"path":900,"stem":901,"tags":6,"slug":902,"sourcePath":900},"部署 AI 咨询聊天示例","/webspace/examples/ai-support-chat","40.webspace/60.examples/50.ai-support-chat","/webspace/examples/ai-support-chat/",{"title":904,"tags":6,"slug":6,"path":905,"stem":906,"children":907,"page":66,"sourcePath":905},"使用插件","/plugin","50.plugin",[908,913,933,994,1015,1050],{"title":909,"path":910,"stem":911,"tags":6,"slug":912,"sourcePath":910},"插件概述","/plugin/overview","50.plugin/00.overview","/plugin/overview/",{"title":914,"tags":6,"slug":6,"path":915,"stem":916,"children":917,"page":66,"sourcePath":915},"日历","/plugin/calendar","50.plugin/10.calendar",[918,923,928],{"title":919,"path":920,"stem":921,"tags":6,"slug":922,"sourcePath":920},"日历介绍","/plugin/calendar/overview","50.plugin/10.calendar/00.overview","/plugin/calendar/overview/",{"title":924,"path":925,"stem":926,"tags":6,"slug":927,"sourcePath":925},"创建、修改和删除日程","/plugin/calendar/create-event","50.plugin/10.calendar/10.create-event","/plugin/calendar/create-event/",{"title":929,"path":930,"stem":931,"tags":6,"slug":932,"sourcePath":930},"查看活动记录","/plugin/calendar/file-activity","50.plugin/10.calendar/40.file-activity","/plugin/calendar/file-activity/",{"title":934,"tags":6,"slug":6,"path":935,"stem":936,"children":937,"page":66,"sourcePath":935},"电子邮件","/plugin/email","50.plugin/20.email",[938,943,948,953,958,964,969,974,979,984,989],{"title":939,"path":940,"stem":941,"tags":6,"slug":942,"sourcePath":940},"电子邮件介绍","/plugin/email/overview","50.plugin/20.email/00.overview","/plugin/email/overview/",{"title":944,"path":945,"stem":946,"tags":6,"slug":947,"sourcePath":945},"电子邮件设置","/plugin/email/setfn-email-setting","50.plugin/20.email/05.setfn-email-setting","/plugin/email/setfn-email-setting/",{"title":949,"path":950,"stem":951,"tags":6,"slug":952,"sourcePath":950},"连接外部电子邮件","/plugin/email/external-email","50.plugin/20.email/07.external-email","/plugin/email/external-email/",{"title":954,"path":955,"stem":956,"tags":6,"slug":957,"sourcePath":955},"电子邮件基本功能","/plugin/email/email-basic","50.plugin/20.email/10.email-basic","/plugin/email/email-basic/",{"title":959,"path":960,"stem":961,"tags":6,"slug":962,"sourcePath":963},"使用邮件 AI 助手","/plugin/email/ai-assistant","50.plugin/20.email/15.email-ai-assistant","/plugin/email/ai-assistant/","/plugin/email/email-ai-assistant",{"title":965,"path":966,"stem":967,"tags":6,"slug":968,"sourcePath":966},"撰写和发送电子邮件","/plugin/email/email-compose","50.plugin/20.email/20.email-compose","/plugin/email/email-compose/",{"title":970,"path":971,"stem":972,"tags":6,"slug":973,"sourcePath":971},"附加文件","/plugin/email/email-attachment","50.plugin/20.email/30.email-attachment","/plugin/email/email-attachment/",{"title":975,"path":976,"stem":977,"tags":6,"slug":978,"sourcePath":976},"电子邮件文件夹管理","/plugin/email/email-folders","50.plugin/20.email/40.email-folders","/plugin/email/email-folders/",{"title":980,"path":981,"stem":982,"tags":6,"slug":983,"sourcePath":981},"自动分类电子邮件","/plugin/email/email-auto-classify","50.plugin/20.email/50.email-auto-classify","/plugin/email/email-auto-classify/",{"title":985,"path":986,"stem":987,"tags":6,"slug":988,"sourcePath":986},"电子邮件文件的保管与共享","/plugin/email/email-open-in-space","50.plugin/20.email/60.email-open-in-space","/plugin/email/email-open-in-space/",{"title":990,"path":991,"stem":992,"tags":6,"slug":993,"sourcePath":991},"电子邮件安全","/plugin/email/email-security","50.plugin/20.email/70.email-security","/plugin/email/email-security/",{"title":995,"tags":6,"slug":6,"path":996,"stem":997,"children":998,"page":66,"sourcePath":996},"工作流（业务自动化）","/plugin/workflow","50.plugin/30.workflow",[999,1004,1010],{"title":1000,"path":1001,"stem":1002,"tags":6,"slug":1003,"sourcePath":1001},"工作流简介","/plugin/workflow/overview","50.plugin/30.workflow/00.overview","/plugin/workflow/overview/",{"title":1005,"path":1006,"stem":1007,"tags":1008,"slug":1009,"sourcePath":1006},"创建新工作流","/plugin/workflow/new-workflow","50.plugin/30.workflow/10.new-workflow",[469],"/plugin/workflow/new-workflow/",{"title":1011,"path":1012,"stem":1013,"tags":6,"slug":1014,"sourcePath":1012},"查看执行记录","/plugin/workflow/execution-history","50.plugin/30.workflow/20.execution-history","/plugin/workflow/execution-history/",{"title":1016,"tags":6,"slug":6,"path":1017,"stem":1018,"children":1019,"page":66,"sourcePath":1017},"微调（AI 训练）","/plugin/fine-tuning","50.plugin/40.fine-tuning",[1020,1025,1030,1035,1040,1045],{"title":1021,"path":1022,"stem":1023,"tags":6,"slug":1024,"sourcePath":1022},"微调简介","/plugin/fine-tuning/overview","50.plugin/40.fine-tuning/00.overview","/plugin/fine-tuning/overview/",{"title":1026,"path":1027,"stem":1028,"tags":6,"slug":1029,"sourcePath":1027},"训练数据预处理","/plugin/fine-tuning/pre-processing","50.plugin/40.fine-tuning/10.pre-processing","/plugin/fine-tuning/pre-processing/",{"title":1031,"path":1032,"stem":1033,"tags":6,"slug":1034,"sourcePath":1032},"训练","/plugin/fine-tuning/training","50.plugin/40.fine-tuning/20.training","/plugin/fine-tuning/training/",{"title":1036,"path":1037,"stem":1038,"tags":6,"slug":1039,"sourcePath":1037},"评估","/plugin/fine-tuning/evaluation","50.plugin/40.fine-tuning/30.evaluation","/plugin/fine-tuning/evaluation/",{"title":1041,"path":1042,"stem":1043,"tags":6,"slug":1044,"sourcePath":1042},"聊天测试","/plugin/fine-tuning/chat-test","50.plugin/40.fine-tuning/40.chat-test","/plugin/fine-tuning/chat-test/",{"title":1046,"path":1047,"stem":1048,"tags":6,"slug":1049,"sourcePath":1047},"导出","/plugin/fine-tuning/export","50.plugin/40.fine-tuning/50.export","/plugin/fine-tuning/export/",{"title":1051,"tags":6,"slug":6,"path":1052,"stem":1053,"children":1054,"page":66,"sourcePath":1052},"EDC（数据收集）","/plugin/edc","50.plugin/50.edc",[1055,1060,1065,1070],{"title":1056,"path":1057,"stem":1058,"tags":6,"slug":1059,"sourcePath":1057},"EDC 简介","/plugin/edc/overview","50.plugin/50.edc/00.overview","/plugin/edc/overview/",{"title":1061,"path":1062,"stem":1063,"tags":6,"slug":1064,"sourcePath":1062},"数据录入、Audit Trail","/plugin/edc/data-entry","50.plugin/50.edc/10.data-entry","/plugin/edc/data-entry/",{"title":1066,"path":1067,"stem":1068,"tags":6,"slug":1069,"sourcePath":1067},"构建器","/plugin/edc/builder","50.plugin/50.edc/20.builder","/plugin/edc/builder/",{"title":1071,"path":1072,"stem":1073,"tags":6,"slug":1074,"sourcePath":1072},"用户/机构设置","/plugin/edc/account","50.plugin/50.edc/30.account","/plugin/edc/account/",{"title":1076,"tags":6,"slug":6,"path":1077,"stem":1078,"children":1079,"page":66,"sourcePath":1077},"命令行工具","/cli","90.cli",[1080],{"title":1081,"path":1082,"stem":1083,"tags":6,"slug":1084,"sourcePath":1082},"使用命令管理服务器","/cli/commands","90.cli/10.commands","/cli/commands/",{"title":1086,"tags":6,"slug":6,"path":1087,"stem":1088,"children":1089,"page":66,"sourcePath":1087},"安全更新","/security-updates","95.security-updates",[1090,1095,1100,1105],{"title":1091,"path":1092,"stem":1093,"tags":6,"slug":1094,"sourcePath":1092},"了解安全检查与更新方式","/security-updates/overview","95.security-updates/00.overview","/security-updates/overview/",{"title":1096,"path":1097,"stem":1098,"tags":6,"slug":1099,"sourcePath":1097},"安全检查记录","/security-updates/review-log","95.security-updates/10.review-log","/security-updates/review-log/",{"title":1101,"path":1102,"stem":1103,"tags":6,"slug":1104,"sourcePath":1102},"主要漏洞检查状态","/security-updates/vulnerability-status","95.security-updates/20.vulnerability-status","/security-updates/vulnerability-status/",{"title":1106,"path":1107,"stem":1108,"tags":6,"slug":1109,"sourcePath":1107},"检查服务器安全更新","/security-updates/server-checklist","95.security-updates/30.server-checklist","/security-updates/server-checklist/",{"title":1111,"tags":6,"slug":6,"path":1112,"stem":1113,"children":1114,"page":66,"sourcePath":1112},"FAQ","/faq","99.FAQ",[1115,1121,1127,1133,1139,1145,1151],{"title":1116,"path":1117,"stem":1118,"tags":6,"slug":1119,"sourcePath":1120},"SetFN 与云服务对比","/FAQ/comparison-cloud","99.FAQ/10.comparison-cloud","/FAQ/comparison-cloud/","/faq/comparison-cloud",{"title":1122,"path":1123,"stem":1124,"tags":6,"slug":1125,"sourcePath":1126},"SetFN 与 NAS 对比","/FAQ/comparison-nas","99.FAQ/20.comparison-nas","/FAQ/comparison-nas/","/faq/comparison-nas",{"title":1128,"path":1129,"stem":1130,"tags":6,"slug":1131,"sourcePath":1132},"安全政策","/FAQ/security-policy","99.FAQ/30.security-policy","/FAQ/security-policy/","/faq/security-policy",{"title":1134,"path":1135,"stem":1136,"tags":6,"slug":1137,"sourcePath":1138},"SetFN 为什么这么快","/FAQ/why-fast","99.FAQ/40.why-fast","/FAQ/why-fast/","/faq/why-fast",{"title":1140,"path":1141,"stem":1142,"tags":6,"slug":1143,"sourcePath":1144},"许可证 FAQ","/FAQ/license-faq","99.FAQ/50.license-faq","/FAQ/license-faq/","/faq/license-faq",{"title":1146,"path":1147,"stem":1148,"tags":6,"slug":1149,"sourcePath":1150},"AI 功能 FAQ","/FAQ/ai-faq","99.FAQ/60.ai-faq","/FAQ/ai-faq/","/faq/ai-faq",{"title":1152,"path":1153,"stem":1154,"tags":6,"slug":1155,"sourcePath":1156},"问题排查指南","/FAQ/troubleshooting","99.FAQ/70.troubleshooting","/FAQ/troubleshooting/","/faq/troubleshooting",{"id":1158,"title":883,"body":1159,"cover":6,"description":1812,"extension":1813,"image":6,"meta":1814,"navigation":1815,"path":884,"reviewSummary":6,"reviewedAt":6,"seo":1816,"slug":887,"stem":885,"tags":1828,"thumbnail":1178,"thumbnailPosition":1829,"thumbnailScale":1830,"__hash__":1831},"docs_zh/40.webspace/60.examples/20.realtime-gomoku.md",{"type":1160,"value":1161,"toc":1796},"minimal",[1162,1165,1169,1172,1179,1182,1187,1195,1226,1229,1246,1249,1252,1255,1323,1326,1330,1333,1343,1350,1394,1397,1401,1408,1457,1460,1464,1471,1478,1481,1487,1494,1498,1508,1518,1531,1535,1563,1566,1572,1575,1578,1584,1591,1594,1599,1695,1698,1701,1704,1770,1773,1776,1779],[1163,1164,883],"h1",{"id":883},[1166,1167,1168],"p",{},"上传文件、部署架构，然后打开两个浏览器试试。朋友加入在一侧创建的房间，落子的瞬间，另一侧的页面上也会出现同样的一手。胜负和排名由服务器自动记录。",[1166,1170,1171],{},"不需要单独的前端构建工具。先用已完成的示例运行一局，然后可以逐一修改数据结构、实时功能和游戏规则。",[1166,1173,1174],{},[1175,1176],"img",{"alt":1177,"src":1178},"19×19 棋盘与实时转播及玩家排名","/img/docs/webspace/gomoku/realtime-gomoku-board.png",[1180,1181],"hr",{},[1183,1184,1186],"h2",{"id":1185},"_1-先运行一局试试","1. 先运行一局试试",[1166,1188,1189,1190,1194],{},"一开始用",[1191,1192,1193],"strong",{},"完整示例 ZIP"," 起步最快。把架构和页面文件上传到同一个文件夹并部署架构，就可以立即开启对局。",[1196,1197,1198,1219],"ul",{},[1199,1200,1201,1206,1207,1211,1212,1211,1215,1218],"li",{},[1202,1203,1205],"a",{"href":1204},"/examples/webspace/gomoku/setfn-realtime-gomoku-sample.zip","下载实时五子棋完整示例 ZIP","：包含架构和 ",[1208,1209,1210],"code",{},"index.html","、",[1208,1213,1214],{},"style.css",[1208,1216,1217],{},"app.js","、README",[1199,1220,1221,1225],{},[1202,1222,1224],{"href":1223},"/examples/webspace/gomoku/gomoku-realtime.sfn","下载五子棋架构文件（.sfn）","：只想查看后端结构，或与自己制作的页面连接时使用",[1166,1227,1228],{},"运行示例后，可以亲自确认以下场景。",[1196,1230,1231,1234,1237,1240,1243],{},[1199,1232,1233],{},"使用房间代码的双人对局",[1199,1235,1236],{},"显示最后一手、我的棋子和当前回合",[1199,1238,1239],{},"每一手都会重新开始的 3 分钟限时",[1199,1241,1242],{},"告知进展情况的实时比赛转播",[1199,1244,1245],{},"显示胜利·失败，并自动更新最近对局和玩家排名",[1166,1247,1248],{},"架构中已预先包含 19×19 棋盘、五子连珠获胜，以及胜 3 分·平 1 分·负 0 分的规则。每个用户最多可以创建 3 个等待房间，30 分钟内无人参加的等待房间会被作为清理对象处理。",[1183,1250,1251],{"id":1251},"游戏中运作的功能",[1166,1253,1254],{},"一局五子棋中自然地包含了 WebSpace 的主要功能。",[1256,1257,1258,1271],"table",{},[1259,1260,1261],"thead",{},[1262,1263,1264,1268],"tr",{},[1265,1266,1267],"th",{},"功能",[1265,1269,1270],{},"在五子棋中的作用",[1272,1273,1274,1283,1291,1299,1307,1315],"tbody",{},[1262,1275,1276,1280],{},[1277,1278,1279],"td",{},"架构文件",[1277,1281,1282],{},"定义对局、落子记录和用户战绩结构",[1262,1284,1285,1288],{},[1277,1286,1287],{},"REST API",[1277,1289,1290],{},"查询最近对局和玩家排名",[1262,1292,1293,1296],{},[1277,1294,1295],{},"WebSocket",[1277,1297,1298],{},"实时传递房间创建·加入和落子结果",[1262,1300,1301,1304],{},[1277,1302,1303],{},"事件处理器",[1277,1305,1306],{},"在服务器端判定回合、坐标、胜利条件和限时",[1262,1308,1309,1312],{},[1277,1310,1311],{},"成员权限",[1277,1313,1314],{},"仅已登录用户可以参与对局",[1262,1316,1317,1320],{},[1277,1318,1319],{},"协作功能",[1277,1321,1322],{},"在同一页面上与参与者对话",[1166,1324,1325],{},"重要的一点是，浏览器不会宣布胜利或直接写入分数。服务器确认当前棋盘和回合，只保存正常的落子，然后向两名用户发送相同的结果。",[1183,1327,1329],{"id":1328},"_2-上传到工作空间","2. 上传到工作空间",[1166,1331,1332],{},"如果只下载了架构文件，请上传到团队或个人工作空间的项目文件夹。如果下载了完整示例 ZIP，请通过文件夹上传或压缩文件上传，把五个文件放在同一个文件夹中。",[1334,1335,1341],"pre",{"className":1336,"code":1338,"language":1339,"meta":1340},[1337],"language-text","五子棋对局室/\n├── gomoku-realtime.sfn\n├── index.html\n├── style.css\n├── app.js\n└── README.md\n","text","",[1208,1342,1338],{"__ignoreMap":1340},[1166,1344,1345,1346,1349],{},"打开架构文件，在",[1208,1347,1348],{},"数据库结构","中确认三张表。",[1256,1351,1352,1362],{},[1259,1353,1354],{},[1262,1355,1356,1359],{},[1265,1357,1358],{},"表",[1265,1360,1361],{},"保存内容",[1272,1363,1364,1374,1384],{},[1262,1365,1366,1371],{},[1277,1367,1368],{},[1208,1369,1370],{},"gomoku_games",[1277,1372,1373],{},"房间代码、参与者、当前回合、限时和最终结果",[1262,1375,1376,1381],{},[1277,1377,1378],{},[1208,1379,1380],{},"gomoku_moves",[1277,1382,1383],{},"第几手、棋子颜色、坐标和用户",[1262,1385,1386,1391],{},[1277,1387,1388],{},[1208,1389,1390],{},"gomoku_players",[1277,1392,1393],{},"每个用户的胜·负·平、累计分数和最近比赛",[1166,1395,1396],{},"由于对局和战绩分开保存，即使重新打开页面，也能再次加载最近记录和排名。",[1183,1398,1400],{"id":1399},"_3-确认-api-和实时功能","3. 确认 API 和实时功能",[1166,1402,1403,1404,1407],{},"打开顶部的",[1208,1405,1406],{},"API 构建","，确认以下项目。",[1409,1410,1411,1418,1428,1441,1454],"ol",{},[1199,1412,1413,1414,1417],{},"确认数据库名称为 ",[1208,1415,1416],{},"gomoku","。",[1199,1419,1420,1421,1424,1425,1417],{},"确认",[1208,1422,1423],{},"实时套接字","为",[1208,1426,1427],{},"使用",[1199,1429,1420,1430,1424,1433,1436,1437,1440],{},[1208,1431,1432],{},"服务器功能",[1208,1434,1435],{},"回合制棋盘游戏","（",[1208,1438,1439],{},"turn-based-board","）。",[1199,1442,1420,1443,1446,1447,1450,1451,1417],{},[1208,1444,1445],{},"发送","和",[1208,1448,1449],{},"接收","权限为",[1208,1452,1453],{},"仅成员",[1199,1455,1456],{},"确认三张表的登记和修改 API 已禁用。",[1166,1458,1459],{},"关闭登记和修改 API 是有原因的。这是为了防止参与者通过 REST API 直接更改胜利次数或落子记录，并让所有游戏状态变更都经过服务器的事件处理器。",[1183,1461,1463],{"id":1462},"_4-使用-sqlite3-部署","4. 使用 SQLite3 部署",[1166,1465,1466,1467,1470],{},"首次运行时，在",[1208,1468,1469],{},"存储","中选择 SQLite3。无需准备单独的数据库地址或账户，是确认示例最简单的方式。",[1166,1472,1473,1474,1477],{},"点击",[1208,1475,1476],{},"部署","之前，确认页面上显示的更改内容和权限摘要。如果同名数据库中已有记录，根据服务器的覆盖策略，可能需要管理员或部署负责人的批准。",[1166,1479,1480],{},"部署完成后，以下地址格式的 REST API 和 WebSocket 就准备好了。",[1334,1482,1485],{"className":1483,"code":1484,"language":1339,"meta":1340},[1337],"GET /api/web/gomoku/gomoku_games/list\nGET /api/web/gomoku/gomoku_players/list\nWS  /api/web/gomoku/realtime-ws\n",[1208,1486,1484],{"__ignoreMap":1340},[1166,1488,1489,1490,1493],{},"如果生产服务器使用 HTTPS，浏览器必须使用同一域名的安全 ",[1208,1491,1492],{},"wss://"," 连接。建议不要在代码中把地址固定为特定的开发域名，而是以当前页面的主机为基准生成。",[1183,1495,1497],{"id":1496},"_5-打开五子棋页面","5. 打开五子棋页面",[1166,1499,1500,1501,1211,1503,1211,1505,1507],{},"架构文件创建游戏的数据库和后端，",[1208,1502,1210],{},[1208,1504,1214],{},[1208,1506,1217],{}," 负责棋盘和用户体验。把两部分分开，就可以在保留对局记录的同时只更换页面。",[1166,1509,1510,1511,1513,1514,1517],{},"如果上传了完整示例，请选择 ",[1208,1512,1210],{}," 并打开",[1208,1515,1516],{},"预览","。如果只使用架构文件，请在自己制作的 HTML 中连接上面的 REST API 和 WebSocket。",[1166,1519,1520,1521,1211,1524,1211,1527,1530],{},"客户端通过 WebSocket 发送 ",[1208,1522,1523],{},"board-game.create",[1208,1525,1526],{},"board-game.join",[1208,1528,1529],{},"board-game.move"," 等操作。棋子和分数以服务器返回的确定事件为准显示。",[1183,1532,1534],{"id":1533},"_6-两人实际对局","6. 两人实际对局",[1409,1536,1537,1542,1548,1551,1557,1560],{},[1199,1538,1539,1540,1417],{},"用不同的成员账户打开同一个 ",[1208,1541,1210],{},[1199,1543,1544,1545,1417],{},"在第一个账户中点击",[1208,1546,1547],{},"创建新对局",[1199,1549,1550],{},"把生成的房间代码传给第二个账户。",[1199,1552,1553,1554,1417],{},"在第二个账户中输入代码并点击",[1208,1555,1556],{},"加入",[1199,1558,1559],{},"轮流落子，确认两个页面上显示相同的一手。",[1199,1561,1562],{},"五子连珠后，确认胜利显示、最近对局和排名是否更新。",[1166,1564,1565],{},"使用普通窗口和无痕窗口这类登录会话相互独立的浏览器，在一台电脑上也能方便地测试。",[1166,1567,1568],{},[1175,1569],{"alt":1570,"src":1571},"同时打开协作聊天的实时五子棋页面","/img/docs/webspace/gomoku/realtime-gomoku-collaboration.png",[1183,1573,1574],{"id":1574},"结果由服务器记录",[1166,1576,1577],{},"横向、纵向或对角线上五子连珠时，服务器会结束对局并保存胜者和分数。即使一手的限时超时，也会以服务器时间为准判定超时负。",[1166,1579,1580],{},[1175,1581],{"alt":1582,"src":1583},"五子棋胜利结果和自动统计的玩家排名","/img/docs/webspace/gomoku/realtime-gomoku-result.png",[1166,1585,1586,1587,1590],{},"如果最近对局和排名没有立即更新，与其反复点击按钮，不如确认流程是否为收到 WebSocket 的结束事件后再重新查询列表。展开页面上的",[1208,1588,1589],{},"开发信息","，还可以查看收发的 JSON 和服务器处理时间。",[1183,1592,1593],{"id":1593},"从这里开始制作我的游戏",[1166,1595,1596,1598],{},[1208,1597,1439],{}," 并不是绑定于五子棋这个名称的处理器。在架构文件的处理器设置中更改以下值，就可以把它用作其他回合制游戏的起点。",[1256,1600,1601,1615],{},[1259,1602,1603],{},[1262,1604,1605,1608,1612],{},[1265,1606,1607],{},"设置",[1265,1609,1611],{"align":1610},"right","当前值",[1265,1613,1614],{},"含义",[1272,1616,1617,1630,1643,1656,1669,1682],{},[1262,1618,1619,1624,1627],{},[1277,1620,1621],{},[1208,1622,1623],{},"boardSize",[1277,1625,1626],{"align":1610},"19",[1277,1628,1629],{},"棋盘一边的格数",[1262,1631,1632,1637,1640],{},[1277,1633,1634],{},[1208,1635,1636],{},"winLength",[1277,1638,1639],{"align":1610},"5",[1277,1641,1642],{},"获胜所需的连续棋子数",[1262,1644,1645,1650,1653],{},[1277,1646,1647],{},[1208,1648,1649],{},"turnTimeSeconds",[1277,1651,1652],{"align":1610},"180",[1277,1654,1655],{},"一手的限时",[1262,1657,1658,1663,1666],{},[1277,1659,1660],{},[1208,1661,1662],{},"winScore",[1277,1664,1665],{"align":1610},"3",[1277,1667,1668],{},"胜利分数",[1262,1670,1671,1676,1679],{},[1277,1672,1673],{},[1208,1674,1675],{},"drawScore",[1277,1677,1678],{"align":1610},"1",[1277,1680,1681],{},"平局分数",[1262,1683,1684,1689,1692],{},[1277,1685,1686],{},[1208,1687,1688],{},"lossScore",[1277,1690,1691],{"align":1610},"0",[1277,1693,1694],{},"失败分数",[1166,1696,1697],{},"可以改成小棋盘的快速游戏，或者根据组织活动调整计分规则。还可以在同一实时基础上添加观战页面、赛季排名和团队对战。",[1166,1699,1700],{},"五子棋既是一个完成的示例，也是新游戏的起点。把棋子换成怪物和道具就成了回合制战斗，把格子换成题目和选项就成了实时问答。把数据和规则放在架构中，在页面上加入想要制作的游戏的乐趣吧。",[1183,1702,1703],{"id":1703},"遇到问题时",[1256,1705,1706,1716],{},[1259,1707,1708],{},[1262,1709,1710,1713],{},[1265,1711,1712],{},"症状",[1265,1714,1715],{},"需要确认的项目",[1272,1717,1718,1729,1737,1747,1762],{},[1262,1719,1720,1723],{},[1277,1721,1722],{},"无法使用实时事件处理器",[1277,1724,1725,1726,1728],{},"确认服务器版本是否支持当前架构的 ",[1208,1727,1439],{}," 处理器",[1262,1730,1731,1734],{},[1277,1732,1733],{},"新对局或加入按钮不起作用",[1277,1735,1736],{},"确认 DB 部署状态、实时功能、登录以及收发权限",[1262,1738,1739,1744],{},[1277,1740,1741],{},[1208,1742,1743],{},"401 Unauthorized",[1277,1745,1746],{},"确认登录会话是否有效，并确认没有把令牌直接放进 URL 查询参数",[1262,1748,1749,1752],{},[1277,1750,1751],{},"生产服务器上 WebSocket 被阻止",[1277,1753,1754,1755,1757,1758,1761],{},"确认 HTTPS 页面使用 ",[1208,1756,1492],{},"，并且 CSP 的 ",[1208,1759,1760],{},"connect-src"," 已允许",[1262,1763,1764,1767],{},[1277,1765,1766],{},"修改后的页面显示为旧版本",[1277,1768,1769],{},"重新打开预览，确认返回的是静态文件的最新版本",[1183,1771,1772],{"id":1772},"结语",[1166,1774,1775],{},"在五子棋示例中，我们把用架构文件创建的数据库和 REST API、仅已登录成员可参与的权限，以及由服务器直接判定的实时游戏状态整合成了一个服务。应用篇的其他示例涵盖用 AI 制作的业务系统、文件夹文件资料公告板、共同怪物团战和 AI 咨询聊天。根据所需功能组合其中几项，仅用 WebSpace 就能制作出大多数内部·面向客户的工具。",[1183,1777,1778],{"id":1778},"接下来可以尝试",[1196,1780,1781,1786,1791],{},[1199,1782,1783],{},[1202,1784,796],{"href":1785},"../api-overview",[1199,1787,1788],{},[1202,1789,827],{"href":1790},"../performance",[1199,1792,1793],{},[1202,1794,857],{"href":1795},"../admin/service-capacity",{"title":1340,"searchDepth":1797,"depth":1798,"links":1799},2,3,[1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811],{"id":1185,"depth":1797,"text":1186},{"id":1251,"depth":1797,"text":1251},{"id":1328,"depth":1797,"text":1329},{"id":1399,"depth":1797,"text":1400},{"id":1462,"depth":1797,"text":1463},{"id":1496,"depth":1797,"text":1497},{"id":1533,"depth":1797,"text":1534},{"id":1574,"depth":1797,"text":1574},{"id":1593,"depth":1797,"text":1593},{"id":1703,"depth":1797,"text":1703},{"id":1772,"depth":1797,"text":1772},{"id":1778,"depth":1797,"text":1778},"下载五子棋架构文件（.sfn），并将其部署为 SQLite3 数据库、REST API 和 WebSocket 游戏后端。","md",{},true,{"title":1817,"description":1818,"ogType":1819,"twitterCard":1820,"keywords":1821},"制作实时五子棋游戏 | WebSocket 游戏服务器示例","在 SetFN WebSpace 中部署五子棋架构文件，并确认加入房间、实时落子、胜负判定和排名保存。","article","summary_large_image",[883,1822,1823,1824,1825,1826,1827],"WebSocket 游戏服务器","WebSocket 示例","SQLite 游戏","无代码后端","架构文件下载","SetFN WebSpace",[469],"8% 28%",2.1,"HLYdjNN7D1q4BPUTzWm63NhP1YlBdp7vytVJV-kazZY",[1833,1834],{"title":878,"path":879,"stem":880,"slug":881,"children":-1},{"title":889,"path":890,"stem":891,"slug":892,"children":-1},{"title":883,"filename":1836,"content":1837},"realtime-gomoku","# 制作实时五子棋游戏\n\n上传文件、部署架构，然后打开两个浏览器试试。朋友加入在一侧创建的房间，落子的瞬间，另一侧的页面上也会出现同样的一手。胜负和排名由服务器自动记录。\n\n不需要单独的前端构建工具。先用已完成的示例运行一局，然后可以逐一修改数据结构、实时功能和游戏规则。\n\n![19×19 棋盘与实时转播及玩家排名](/img/docs/webspace/gomoku/realtime-gomoku-board.png)\n\n---\n\n## 1. 先运行一局试试\n\n一开始用**完整示例 ZIP** 起步最快。把架构和页面文件上传到同一个文件夹并部署架构，就可以立即开启对局。\n\n- [下载实时五子棋完整示例 ZIP](/examples/webspace/gomoku/setfn-realtime-gomoku-sample.zip)：包含架构和 `index.html`、`style.css`、`app.js`、README\n- [下载五子棋架构文件（.sfn）](/examples/webspace/gomoku/gomoku-realtime.sfn)：只想查看后端结构，或与自己制作的页面连接时使用\n\n运行示例后，可以亲自确认以下场景。\n\n- 使用房间代码的双人对局\n- 显示最后一手、我的棋子和当前回合\n- 每一手都会重新开始的 3 分钟限时\n- 告知进展情况的实时比赛转播\n- 显示胜利·失败，并自动更新最近对局和玩家排名\n\n架构中已预先包含 19×19 棋盘、五子连珠获胜，以及胜 3 分·平 1 分·负 0 分的规则。每个用户最多可以创建 3 个等待房间，30 分钟内无人参加的等待房间会被作为清理对象处理。\n\n## 游戏中运作的功能\n\n一局五子棋中自然地包含了 WebSpace 的主要功能。\n\n| 功能          | 在五子棋中的作用                                 |\n| ------------- | ------------------------------------------------ |\n| 架构文件      | 定义对局、落子记录和用户战绩结构                 |\n| REST API      | 查询最近对局和玩家排名                           |\n| WebSocket     | 实时传递房间创建·加入和落子结果                  |\n| 事件处理器    | 在服务器端判定回合、坐标、胜利条件和限时         |\n| 成员权限      | 仅已登录用户可以参与对局                         |\n| 协作功能      | 在同一页面上与参与者对话                         |\n\n重要的一点是，浏览器不会宣布胜利或直接写入分数。服务器确认当前棋盘和回合，只保存正常的落子，然后向两名用户发送相同的结果。\n\n## 2. 上传到工作空间\n\n如果只下载了架构文件，请上传到团队或个人工作空间的项目文件夹。如果下载了完整示例 ZIP，请通过文件夹上传或压缩文件上传，把五个文件放在同一个文件夹中。\n\n```text\n五子棋对局室/\n├── gomoku-realtime.sfn\n├── index.html\n├── style.css\n├── app.js\n└── README.md\n```\n\n打开架构文件，在`数据库结构`中确认三张表。\n\n| 表               | 保存内容                                         |\n| ---------------- | ------------------------------------------------ |\n| `gomoku_games`   | 房间代码、参与者、当前回合、限时和最终结果       |\n| `gomoku_moves`   | 第几手、棋子颜色、坐标和用户                     |\n| `gomoku_players` | 每个用户的胜·负·平、累计分数和最近比赛           |\n\n由于对局和战绩分开保存，即使重新打开页面，也能再次加载最近记录和排名。\n\n## 3. 确认 API 和实时功能\n\n打开顶部的`API 构建`，确认以下项目。\n\n1. 确认数据库名称为 `gomoku`。\n2. 确认`实时套接字`为`使用`。\n3. 确认`服务器功能`为`回合制棋盘游戏`（`turn-based-board`）。\n4. 确认`发送`和`接收`权限为`仅成员`。\n5. 确认三张表的登记和修改 API 已禁用。\n\n关闭登记和修改 API 是有原因的。这是为了防止参与者通过 REST API 直接更改胜利次数或落子记录，并让所有游戏状态变更都经过服务器的事件处理器。\n\n## 4. 使用 SQLite3 部署\n\n首次运行时，在`存储`中选择 SQLite3。无需准备单独的数据库地址或账户，是确认示例最简单的方式。\n\n点击`部署`之前，确认页面上显示的更改内容和权限摘要。如果同名数据库中已有记录，根据服务器的覆盖策略，可能需要管理员或部署负责人的批准。\n\n部署完成后，以下地址格式的 REST API 和 WebSocket 就准备好了。\n\n```text\nGET /api/web/gomoku/gomoku_games/list\nGET /api/web/gomoku/gomoku_players/list\nWS  /api/web/gomoku/realtime-ws\n```\n\n如果生产服务器使用 HTTPS，浏览器必须使用同一域名的安全 `wss://` 连接。建议不要在代码中把地址固定为特定的开发域名，而是以当前页面的主机为基准生成。\n\n## 5. 打开五子棋页面\n\n架构文件创建游戏的数据库和后端，`index.html`、`style.css`、`app.js` 负责棋盘和用户体验。把两部分分开，就可以在保留对局记录的同时只更换页面。\n\n如果上传了完整示例，请选择 `index.html` 并打开`预览`。如果只使用架构文件，请在自己制作的 HTML 中连接上面的 REST API 和 WebSocket。\n\n客户端通过 WebSocket 发送 `board-game.create`、`board-game.join`、`board-game.move` 等操作。棋子和分数以服务器返回的确定事件为准显示。\n\n## 6. 两人实际对局\n\n1. 用不同的成员账户打开同一个 `index.html`。\n2. 在第一个账户中点击`创建新对局`。\n3. 把生成的房间代码传给第二个账户。\n4. 在第二个账户中输入代码并点击`加入`。\n5. 轮流落子，确认两个页面上显示相同的一手。\n6. 五子连珠后，确认胜利显示、最近对局和排名是否更新。\n\n使用普通窗口和无痕窗口这类登录会话相互独立的浏览器，在一台电脑上也能方便地测试。\n\n![同时打开协作聊天的实时五子棋页面](/img/docs/webspace/gomoku/realtime-gomoku-collaboration.png)\n\n## 结果由服务器记录\n\n横向、纵向或对角线上五子连珠时，服务器会结束对局并保存胜者和分数。即使一手的限时超时，也会以服务器时间为准判定超时负。\n\n![五子棋胜利结果和自动统计的玩家排名](/img/docs/webspace/gomoku/realtime-gomoku-result.png)\n\n如果最近对局和排名没有立即更新，与其反复点击按钮，不如确认流程是否为收到 WebSocket 的结束事件后再重新查询列表。展开页面上的`开发信息`，还可以查看收发的 JSON 和服务器处理时间。\n\n## 从这里开始制作我的游戏\n\n`turn-based-board` 并不是绑定于五子棋这个名称的处理器。在架构文件的处理器设置中更改以下值，就可以把它用作其他回合制游戏的起点。\n\n| 设置              | 当前值 | 含义                     |\n| ----------------- | ------: | ------------------------ |\n| `boardSize`       |      19 | 棋盘一边的格数           |\n| `winLength`       |       5 | 获胜所需的连续棋子数     |\n| `turnTimeSeconds` |     180 | 一手的限时               |\n| `winScore`        |       3 | 胜利分数                 |\n| `drawScore`       |       1 | 平局分数                 |\n| `lossScore`       |       0 | 失败分数                 |\n\n可以改成小棋盘的快速游戏，或者根据组织活动调整计分规则。还可以在同一实时基础上添加观战页面、赛季排名和团队对战。\n\n五子棋既是一个完成的示例，也是新游戏的起点。把棋子换成怪物和道具就成了回合制战斗，把格子换成题目和选项就成了实时问答。把数据和规则放在架构中，在页面上加入想要制作的游戏的乐趣吧。\n\n## 遇到问题时\n\n| 症状                                  | 需要确认的项目                                                            |\n| ------------------------------------- | ------------------------------------------------------------------------- |\n| 无法使用实时事件处理器                | 确认服务器版本是否支持当前架构的 `turn-based-board` 处理器                |\n| 新对局或加入按钮不起作用              | 确认 DB 部署状态、实时功能、登录以及收发权限                              |\n| `401 Unauthorized`                    | 确认登录会话是否有效，并确认没有把令牌直接放进 URL 查询参数               |\n| 生产服务器上 WebSocket 被阻止         | 确认 HTTPS 页面使用 `wss://`，并且 CSP 的 `connect-src` 已允许            |\n| 修改后的页面显示为旧版本              | 重新打开预览，确认返回的是静态文件的最新版本                              |\n\n## 结语\n\n在五子棋示例中，我们把用架构文件创建的数据库和 REST API、仅已登录成员可参与的权限，以及由服务器直接判定的实时游戏状态整合成了一个服务。应用篇的其他示例涵盖用 AI 制作的业务系统、文件夹文件资料公告板、共同怪物团战和 AI 咨询聊天。根据所需功能组合其中几项，仅用 WebSpace 就能制作出大多数内部·面向客户的工具。\n\n## 接下来可以尝试\n\n- [构建 API 并部署数据库](../24.api-overview.md)\n- [性能与扩展](../48.performance.md)\n- [服务与容量](../50.admin/40.service-capacity.md)\n",1793056635795]