1

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

但是,由于我的网站使用HTTPS,当我尝试通过它将浏览器连接到我的服务器ws时会发出此警告:An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.但据我了解,NodeJSjs-ipfs无法收听wss呼叫。

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

4

1 回答 1

2

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

您也可以使用webrtc-star而不是 websockets。但是,虽然您可以同时使用这两种方法,但它们中的每一种都具有更适合某些场景的特殊性。如果您需要对等发现,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 连接。

于 2020-11-06T20:10:23.000 回答