Javascript libp2p for React Native:libp2p如何避开NodeJS';在浏览器中使用EventEmitter时?

Javascript libp2p for React Native:libp2p如何避开NodeJS';在浏览器中使用EventEmitter时?,javascript,react-native,ipfs,Javascript,React Native,Ipfs,所以我尝试使用React Native运行一个libp2p节点 我意识到它目前不受支持(2017年12月——可能已经改变),但我还是决定尝试一下,因为它已经在浏览器和NodeJS中运行了 在要求libp2p之后,我得到了错误: 绑定失败:无法解决错误:无法从“/node\u modules/libp2p/src/index.js”解析模块“事件”:模块映射中不存在模块 这是因为它找不到事件;这很有意义,因为它是NodeJS环境的一部分,在浏览器(或React本机环境)中不可用 在浏览器中如何处

所以我尝试使用React Native运行一个libp2p节点

我意识到它目前不受支持(2017年12月——可能已经改变),但我还是决定尝试一下,因为它已经在浏览器和NodeJS中运行了

在要求
libp2p
之后,我得到了错误:
绑定失败:无法解决错误:无法从“/node\u modules/libp2p/src/index.js”解析模块“事件”:模块映射中不存在模块

这是因为它找不到
事件
;这很有意义,因为它是NodeJS环境的一部分,在浏览器(或React本机环境)中不可用

在浏览器中如何处理此问题?或者更确切地说;如果他们根本不捆绑它,
libp2p
将如何在浏览器中使用


还提到了在浏览器中使用的特定绑定版本的库,但是我已经放弃了寻找它。

鉴于缺乏文档和libp2p的绑定,我只能假设您打算自己绑定它


创建捆绑包很好——这回答了关于在浏览器中使用的问题——但是RN中的libp2p仍然不起作用,因为缺少兼容的webcrypto实现。

您最好的选择可能是调整
libp2p
以使用与浏览器兼容的事件库,如
EventEmitter3
()或
节点事件发射器
()。大多数事件库的工作方式都非常相似,因此重构不应该太繁重,这取决于libp2p的复杂性。我目前正在尝试创建一个libp2p捆绑包,我可以使用bablize/webpack。在庆祝活动结束后,你会有进展地发表评论。@GregLinklater有进展吗?这种进展暂时被搁置了。取而代之的是,我采取了懒惰的方式,并一直在使用一个快速而肮脏的websocket服务模拟p2p通信。