javascript 通过WebSocket连接到AWS EC2节点

qpgpyjmq  于 2023-09-29  发布在  Java
关注(0)|答案(2)|浏览(126)

我使用geth在aws ec2示例上创建了一个链节点。我是否需要启用某些功能,或者我应该使用哪个IP来连接它?我使用web3.js使用新的Web3.providers.WebsocketProvider('wss_address',abiOptions)
我使用--ws为它启用了ws。在这里我得到了“WebSocket enabled url=ws://127.0.0.0.1:8546”。

yxyvkwin

yxyvkwin1#

从Geth docs page on命令行选项:

--ws                                (default: false)                   ($GETH_WS)
      Enable the WS-RPC server

--ws.addr value                     (default: "localhost")             ($GETH_WS_ADDR)
      WS-RPC server listening interface

--ws.api value                                                         ($GETH_WS_API)
      API's offered over the WS-RPC interface

--ws.origins value                                                     ($GETH_WS_ORIGINS)
      Origins from which to accept websockets requests

--ws.port value                     (default: 8546)                    ($GETH_WS_PORT)
      WS-RPC server listening port

--ws.rpcprefix value                                                   ($GETH_WS_RPCPREFIX)
      HTTP path prefix on which JSON-RPC is served. Use '/' to serve on all paths.

如果只指定--ws选项,则使用默认值--ws.addr,节点只侦听来自本地计算机的传入请求。
您可以通过IP地址或主机名指定节点侦听的网络接口。例如,如果您的服务器的IP是123.123.123.123,您可以指定以下IP。这使节点能够接受WS连接到此IP

geth --ws --ws.addr "123.123.123.123"

或者您希望侦听来自服务器所有网络接口的传入请求(例如localhost,all LAN cables,VPN tunnel,wifi,...),您可以将--ws.addr的值指定为0.0.0.0。这使节点能够接受所有传入的WS连接。

geth --ws --ws.addr "0.0.0.0"
ee7vknir

ee7vknir2#

使用此命令:

nohup ./geth --config ./config.toml --datadir ./node  --cache 8500 --rpc.allow-unprotected-txs --txlookuplimit 0  --ws --ws.addr "0.0.0.0" --ws.origins "*" --ws.api "web3, eth" &

和这条线连接:

new Web3.providers.WebsocketProvider('ws://yourPublicIpAddress:8546', abiOptions)

所有工作,感谢支持)
P.S.在我的情况下,它是与端口规范的连接工作。而且只通过ws,而不是wss。我没有注意到任何差异时,通过IP连接与不DNS

相关问题