node.js - IPFS-如何将消息从一个点发送到另一个点?

标签 node.js ipfs libp2p

我正在寻找一种将消息从 IPFS Node 发送到另一个 Node 的解决方案

github doc我发现这段代码将对等点连接到另一个对等点:

ipfs.swarm.connect(addr, function (err) {
  if (err) {
    throw err
  }
  // if no err is present, connection is now open
})

但根据文档,连接后无事可做。

有一个名为 ipfs-pubsub-room 的解决方案处理点之间的消息传递,但没有用于浏览器的 CDN。

最佳答案

ipfs.swarm.connect 将简单地连接两个 Node ,以便它们可以交换文件。

ipfs-pubsub-room 应该可以在浏览器中正常工作,但是是的,您需要自己打包它。

但是,您可以使用 libp2p ,IPFS 的网络库,直接通过 ipfs.libp2p 属性,如果您只需要直接从一个点发送消息到另一个点。

监听入站消息,您可以在您的一个 Node 上注册一个“协议(protocol)处理程序”:

const pull = require('pull-stream')
ipfs.libp2p.handle('/my/protocol/name/1.0.0', (protocolName, connection) => {
  pull(connection, pull.collect((err, data) => {
    console.log("received:", data.toString())
  }))
})

(其中 ipfsinitialized IPFS Node 对象,而不是 IPFS 导入。)

要发送消息,您必须“调用”对等点/协议(protocol):

const pull = require('pull-stream')
ipfs.libp2p.dialProtocol(addr, '/my/protocol/name/1.0.0', (err, connection) => {
  pull(pull.values(["my message"]), connection)
})

您可以在 js-ipfs documentation 中找到完整的示例.

关于node.js - IPFS-如何将消息从一个点发送到另一个点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53467489/

相关文章:

p2p - IPFS - pubsub 从浏览器连接到对等点

node.js - Electron handle 正常崩溃

rust - 在 libp2p 中实现对等点发现

javascript - 将JSON对象转换为javascript中的数组数组

javascript - setTimeout 与 mongodb 每个

node.js - 在 package.json 中使用 Jest --testNamePattern=<regex> 或 -t 选项

node.js -/lib64/libc.so.6 : version `GLIBC_2.14' not found. 为什么会出现此错误?

node.js - 我尝试使用 NPM 安装 IPFS 模块,但出现以下错误

api - 我可以在我的 Go 程序中直接使用 go-ipfs 吗?

go - 如何使用 golang libp2p 流向多个主机发送数据?