dfuse 团队很自豪地宣布我们推出了升级版的 JavaScript/TypeScript 客户端库。如果你的项目是使用的 JavaScript/TypeScript 时,这个新库现在是与 dfuse 流式 API 和 dfuse REST API 的接口标准。
这个库在新的 @dfuse/client
软件包下,我们也提供了完整的文档、入门教程以及一整套基本示例和高级示例。
这个新库替代了我们以前的 @dfuse/eosws-js
,我们加入了许多新功能,绝对值得你切换。为了简化切换新库过程,我们编写了一份迁移指南,一步步地指导你完成此操作。新库中还包含新的样板代码,可以直接调用。
以下是新库中包含的一些更新:
新库现在完全与我们新的 API Key 认证机制(长期 API Key 以及短期 JWT token 的生成)。请务必阅读有关身份验证协议的文档来了解详情。
该库现在可以自动通过 API Key 生成和更新短期 API token, 保持 token 的及时更新、持久性和预防到期。
针对 API token 持久性,该库还具有可以即用的默认设置。在浏览器环境中,我们将 API token 存储在浏览器的 localStorage
中。在 Node.js 环境中,API token 默认存储在 ~/.dfuse//token.json
的文件中。
用最新的库的话,你就可以完全不用手动管理 API token了。让 dfuse 为你自动处理!
新库改进了 dfuse 流式 API 的交互,对于开发者来说更易用。这个库现在处理底层 WebSocket 的自动连接/断开连接。启动数据流时,库会自动连接 WebSocket。关闭了所有活跃的数据流之后,连接将自动断开。
新库还极大地改进了重新连接 WebSocket 的工作流程。你现在可以标记你的数据流,轻松跟踪进度,一旦重新建立了连接,库将在最后一个标记点自动重启数据流。这一切都是自动化的,你只需要定期标记你的数据流,就可以准确地接上你离开的点。
const stream = client.streamActionTraces(..., () => {
stream.mark()
})
使用这个简单的示例,你可以轻松标记你的进度。推荐大家去看看"如何不错过每个节拍"的高级示例,那有更完整的示例代码,同时请务必阅读更深入的文档。
注意:数据流的标记是保存在内存中的;你仍然要负责在你自己的代码中处理好重启进程。
新库还支持所有的 dfuse REST API,填补了旧版库的空缺。所有的 REST API 的调用都可以使用 dfuse Client 的实例完成。
如果你之前使用的是 EOS Nation 的库,你也应该迁移到 @dfuse/client
,因为新库完全包含所有的功能。非常感谢 EOS Nation 和 EOS Cafe Block 初期提供的支持。
我们现在提供一个 UMD 版本,该版本也由 unpkg.com 的 CDN 提供服务,支持你在没有捆绑任何库(如 Webpack 或 Rollup)的情况下使用 dfuse Client。
访问我们的 GitHub 页面,可以看到浏览器上的示例。
eos-ws.js
库现已弃用,其中包含的例子不多,所以我们在新的库中也在这方面做出了改进。新的库中包括了一些完整的、新的高级示例,可以在各个方面有效地处理区块链项目和 dfuse API。请参阅文档的相关部分来看看所有新库中包含的示例。
我们现在还有一个 React 示例 APP,用 @dfuse/client
包的与 dfuse 流式 API 进行交互。该应用的完整源代码是完全开放的。
你应该查看 src/App.js,其中包含示例的完整源代码。其中其他文件都是支持性的和样式文件。
新的 API 参考资料是直接从源文件生成的,现在库的功能更容易被发现了。这里还有这个库的重要 API 参考资料的列表。