我正在寻找一种将消息从 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())
}))
})
(其中 ipfs
是 initialized 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/