我正在尝试将浏览器js-ipfs节点连接到运行js-ipfs节点的my NodeJS服务器。我知道,为了连接这两个节点,我需要将服务器的Multiaddr添加到浏览器的引导配置中。
但是,由于我的网站使用HTTPS,所以当我试图通过ws将浏览器连接到服务器时,它会发出这样的警告:An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.,但据我所知,NodeJS的js-ipfs不能监听wss调用。
那么,我如何连接这两个节点呢?使用WebSockets是唯一或最好的方式吗?
发布于 2020-11-06 20:10:23
由于浏览器的安全策略,您不能从安全上下文(例如,通过HTTPS加载的页面)建立未加密的连接。你可以在MDN安全上下文上读到它。因此,您应该让服务器使用SSL,然后将ws://替换为wss://。最简单的方法是用nginx安装SSL。您也需要为证书设置一个域名。您还可以查看一些关于如何在此按下上使用SSL设置libp2p/IPFS的文档。
您也可以使用webrtc-star代替websockets。但是,尽管您可以同时使用这两种方法,但它们都有一些特殊的特性,这些特性更适合于某些场景。如果您需要对等发现,此时应该使用webrtc-star,您可以检查https://github.com/libp2p/js-libp2p/tree/master/examples/libp2p-in-the-browser和https://github.com/ipfs/js-ipfs/tree/master/examples/browser-exchange-files。如果不需要依赖对等发现,而另一个对等点是众所周知的对等点,则可以使用引导并通过websockets进行连接。
https://stackoverflow.com/questions/64720398
复制相似问题