环境配置
在开始编码之前,需要先部署 KnotLink 的运行环境。整个过程约 5 分钟。
一、安装 守护进程
守护进程(KnotLinkService)是协议的核心——所有节点间的消息路由、信号广播都由它中转。没有它,各节点无法相互发现和通信。
1.1 下载
从 KnotLink Release 下载最新版本的守护进程安装包:
- Windows:
KnotLinkService-Setup-x64.exe - Linux:
knotlink-service_amd64.deb/.rpm - macOS:
KnotLinkService.dmg
1.2 安装并启动
- Windows
- Linux
- macOS
# 双击运行安装包,按向导完成安装
# 安装完成后,守护进程默认开机自启
# 手动启动/停止/重启:
net start KnotLinkService
net stop KnotLinkService
# Debian/Ubuntu
sudo dpkg -i knotlink-service_amd64.deb
sudo systemctl start knotlink-service
sudo systemctl enable knotlink-service # 开机自启
# 检查运行状态
sudo systemctl status knotlink-service
# 双击 .dmg 安装,或将 .app 拖入 Applications
# 启动后菜单栏会出现 KnotLink 图标
# 或通过命令行:
open /Applications/KnotLinkService.app
1.3 验证
守护进程启动后,会在本地监听几个固定端口:
| 端口 | 用途 |
|---|---|
6378 | OpenSocket 回答者注册 |
6376 | OpenSocket 查询请求 |
6372 | Signal 订阅注册 |
6370 | Signal 发送 |
确认端口已监听:
# Windows (PowerShell)
netstat -an | findstr "6378 6376 6372 6370"
# Linux / macOS
netstat -an | grep -E "637[0268]"
如果看到这些端口处于 LISTEN 状态,说明守护进程已正常运行。
二、浏览已发布的节点(可选)
访问 knotlink.cn/nodes 浏览已收录的节点,了解它们提供的接口和信号。也可以直接查看 KNodeIndex 仓库 的 plugin/ 和 standalone/ 目录。
如果只是本地开发和调试,浏览节点不是必须的——守护进程 + SDK 就足够了。想要发布自己的节点,参见 打包与分发。
三、安装语言 SDK
KnotLink 为不同语言提供了对应的 SDK 库。选择你使用的语言:
Python
# 纯 Python 版(推荐:CLI 工具、后台服务、无 GUI 场景)
pip install knotlink
# Qt 版(用于 PyQt5 桌面应用)
pip install KnotLinkClient_PyQt
验证安装:
# 测试导入是否成功
from knotlink import OpenSocketResponser, SignalSender, KLKVMap
print("knotlink SDK 安装成功")
# 对于 Qt 版:
# from KnotLinkClient_PyQt import OpenSocketResponser, SignalSender
JavaScript / TypeScript(Node.js)
npm install knotlink-client
// 验证安装
const { OpenSocketResponser, SignalSender } = require('knotlink-client');
console.log('knotlink-client 安装成功');
C++(即将推出)
敬请期待。
四、工具链(可选,推荐)
KnotLink 提供配套图形化工具来简化开发流程:
- FLEditor:功能清单编辑器,可视化填写
FuncList.json,内置测试调用和文档导出。pip install PyQt5 PyQtWebEngine后运行python fleditor.py即可。 - 操作面板:启动守护进程后自动可用,提供 API 调试和文档查看。
这些工具不是必须的——你也可以直接手写 JSON 和用 SDK 测试。但结合使用能省大量时间。
五、环境就绪检查清单
在进入编码之前,确认以下每一项:
- 守护进程已启动(端口 6370/6372/6376/6378 处于 LISTEN 状态)
- 至少一个语言的 SDK 已安装并可导入
全部就绪?进入下一步:编写代码。