将浏览器连接到NodeJS IPFS节点

问题描述

我正在尝试将浏览器js-ipfs节点连接到同时运行js-ipfs节点的NodeJS服务器。我知道我需要将服务器的Multiaddr添加到浏览器的引导程序配置中才能连接两个节点。

但是,由于我的网站使用HTTPS,因此当我尝试通过ws将浏览器连接到服务器时,会发出以下警告:An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.,但据我理解NodeJS的{{1} }无法收听js-ipfs通话。

那么我该如何连接两个节点?使用WebSockets是唯一还是最好的方法

解决方法

由于浏览器的安全政策,您无法通过安全上下文(例如,通过HTTPS加载的页面)建立未加密的连接。您可以在MDN Secure Context上了解它。因此,您应该使服务器使用SSL,然后将ws://替换为wss://。最简单的方法是使用nginx设置SSL。您还需要为证书设置一个域名。 您还可以在此PR上查看有关如何使用SSL设置libp2p / IPFS的一些文档。

您也可以使用webrtc-star代替websocket。但是,虽然您可以同时使用这两种方法,但它们中的每一种都有其特殊性,对于某些情况而言更好。如果您需要对等发现,那么现在应该使用webrtc-star,并且可以检查https://github.com/libp2p/js-libp2p/tree/master/examples/libp2p-in-the-browserhttps://github.com/ipfs/js-ipfs/tree/master/examples/browser-exchange-files。如果您不需要依靠对等点发现,而另一个对等点是众所周知的对等点,则可以使用引导程序并通过websockets连接。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...