Skip to main content

调用功能

本文档教你如何调用其他程序通过 KnotLink 暴露的功能——包括发起请求获取响应,以及订阅信号监听事件。

这是"调用方"教程。如果你想提供功能给别人调用,请查看 提供功能


发现可调用的节点

访问 knotlink.cn/nodes 浏览已收录的节点,每个节点页面列出了它的 appID、接口和信号详情。也可以直接查看 KNodeIndex 仓库plugin/standalone/ 目录。


前置条件

  • 已安装并运行 守护进程
  • 已安装对应语言的 SDK(参见 环境配置
  • 知道目标程序的 appIDopenSocketID / signalID(从上述渠道获取)

两种调用方式

方式模块模式场景
请求-响应OpenSocketQuerier一问一答查询数据、执行操作、远程控制
订阅信号SignalSubscriber持续监听实时事件通知、状态变更

选择语言:

请求-响应

from knotlink import OpenSocketQuerier, KLKVMap

# 连接到目标接口
querier = OpenSocketQuerier("com.example.msgreminder", "show")

# 构建请求数据
kv = KLKVMap()
kv["msgContext"] = "你好,这是一条测试消息"
kv["sender"] = "我的调用程序"

# 同步查询:发送请求并等待响应
response = querier.query(kv.serialize())
print(f"响应:{response}") # → "OK"

订阅信号

from knotlink import SignalSubscriber, KLKVMap
import time

def on_signal(data: str):
kv = KLKVMap()
kv.deserialize(data)
event = kv.get("event", "")
print(f"📩 收到信号 [{event}]:{data}")

# 订阅目标信号
sub = SignalSubscriber("com.example.msgreminder", "messageReceived")
sub.set_RecvFunc(on_signal)

print("🔗 等待信号...")
while True:
time.sleep(1)

下一步