通过 Websocket 或 HTTP 连接到在 VPS 上运行的 BSC 节点

Posted

技术标签:

【中文标题】通过 Websocket 或 HTTP 连接到在 VPS 上运行的 BSC 节点【英文标题】:Connect to BSC Node running on VPS via Websocket or HTTP 【发布时间】:2021-09-16 04:13:01 【问题描述】:

我已经按照此处的文档在 BSC 上设置了自己的节点 - https://docs.binance.org/smart-chain/developer/fullnode.html

我遇到的问题是我无法通过 Web3 连接到节点。

尝试使用连接时

web3 = Web3(Web3.WebsocketProvider('ws://[server-ip]:8545'))
print('ws - ' + str(web3.isConnected()))

我的输出是false

运行我正在使用的节点时:

./geth --config ./config.toml --datadir ./mainnet --ws --ws.port=8545  --ws.origins='*'

我尝试了许多配置组合来使其正常工作,但没有运气。通常,我尝试通过 Web 套接字进行连接,但如果需要,我很乐意使用 HTTP 提供程序进行连接。

查看netstat --listen --tcp 输出我在节点运行时得到了这个:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:8545          0.0.0.0:*               LISTEN
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp6       0      0 [::]:30311              [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN

有人知道我错过了什么吗?

【问题讨论】:

【参考方案1】:

经过大量研究,我发现处理此问题的最佳方法是简单地运行 nginx 代理。

以下是我为寻找类似问题解决方案的任何人所遵循的说明

https://www.nginx.com/blog/websocket-nginx/

【讨论】:

以上是关于通过 Websocket 或 HTTP 连接到在 VPS 上运行的 BSC 节点的主要内容,如果未能解决你的问题,请参考以下文章

Akka-http:连接到localhost上的websocket

使用带有webpack的socket.io连接到GDAX websocket api

将 JavaScript WebSocket 连接到 C winsock

WebSocket 连接到 'ws://localhost:8081/.../.../...' 失败:HTTP 身份验证失败;没有可用的有效凭据

从Http的连接到WebSocket

通过 https 加载的网页如何连接到在 localhost 上运行的 WebSocket 服务器?