0Pricing
MCP Academy · 课时

通知客户端更新

在资源内容发生变化时发出信号。

通知客户端更新 是 CoddyKit 上的免费 MCP Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 MCP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 MCP Academy 课程共包含 4 节课。

数据并非一成不变

资源会发生变化:文件可能被编辑,记录可能被更新。MCP 允许服务器通知客户端,避免客户端持续读取过时内容。🔔

通知是单向的

更新信号就是一种通知:它是不带 id 且不需要回复的 JSON-RPC 消息。服务器告知客户端发生了某件事,然后继续运行。

先订阅

客户端通过为特定 URI 调用资源/订阅来选择接收更新。只有这样,服务器才会发送有关该资源的更新。

{"method": "resources/subscribe",
 "params": {"uri": "file://notes.txt"}}

更新信号

受监视的资源发生变化时,服务器会发送携带 URI 的资源/已更新消息。它说明发生了什么变化,但不会携带新内容本身。

{"method": "notifications/resources/updated",
 "params": {"uri": "file://notes.txt"}}

先通知,再重新读取

流程分为两步:服务器先通知,然后由客户端决定是否重新读取。这样既能保持载荷很小,也能让客户端控制时机。

列表也可能发生变化

有时整个目录会随着资源出现或消失而变化。服务器会发送list_changed通知,让客户端刷新资源列表。

{"method":
 "notifications/resources/list_changed"}

由能力协商决定

这些功能会在开始时进行协商。服务器会在初始化期间公布是否支持订阅和 listChanged,这样双方都知道哪些功能可用。

取消订阅以停止更新

客户端不再关注某个资源时,可以针对该 URI 调用资源/取消订阅。随后服务器会停止发送更新,避免浪费不必要的流量。

{"method": "resources/unsubscribe",
 "params": {"uri": "file://notes.txt"}}

只在真正变化时触发

仅当内容确实发生变化时才发送更新。嘈杂且没有必要的通知会浪费客户端的处理能力,还可能触发毫无意义的重新读取。

监视数据来源

为了知道何时发送通知,您的服务器会监视数据来源,例如使用文件监视器或数据库触发器,然后据此发出更新信号。

为什么这很重要

更新通知会让资源变成实时内容。模型无需轮询即可与实际情况保持同步,从而让自身的上下文保持准确。🎯

快速检查

资源/已更新通知包含什么内容?

回顾

您学会了客户端如何订阅、接收更新通知和 list_changed 通知,并按需重新读取,从而让动态资源保持最新和实时。课程完成!🚀

常见问题解答

「通知客户端更新」课时是免费的吗?

是的 — 「通知客户端更新」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 MCP Academy 课程的其余内容,请升级到 CoddyKit PRO。 MCP Academy 课程共包含 4 节课。

「通知客户端更新」这节课中我会学到什么?

在资源内容发生变化时发出信号。 你通过在浏览器中直接运行的动手代码来练习 MCP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 MCP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 MCP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「通知客户端更新」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 MCP Academy 课中编写并运行代码吗?

能。每节 MCP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 带参数的资源 URI
  2. 在读取时构建内容
  3. 列表资源与模板资源
  4. 通知客户端更新
← 返回 MCP Academy