Пытаетесь подключиться к гет-машине через веб-сокет? JS-код.
var Web3=require('web3');
var web3 = new Web3(new
Web3.providers.WebsocketProvider('ws://10.244.5.43:8546'));
console.log(web3.isConnected());
Не знаете, как подключиться с помощью WebSocket?
У меня была такая же проблема с web3 v1.0.0 beta 30
. Никогда не добирался до сути, но пропуск конструкции провайдера, похоже, исправил это:
var Web3=require('web3');
var web3 = new Web3('ws://10.244.5.43:8546');
Я предполагаю, что вы используете версию Web3.js старше 1.0. Я считаю, что это WebsocketProvider
было добавлено в 1.0.
Итак, в моем конкретном случае я использую TypeScript, и кажется, что типизация вводила в заблуждение. Пакет web3-providers-ws
говорит, что следующий импорт должен быть допустимым:
import { WebsocketProvider } from "web3-providers-ws"
const provider = new WebsocketProvider("<host>", { ... })
Кажется, типизация немного лжет (или, по крайней мере, есть что-то еще, что мешает ему работать должным образом).
Мне пришлось сделать следующее, чтобы решить проблему:
import WebsocketProvider from "web3-providers-ws"
// @ts-ignore It appears default export is required otherwise it throws 'WebsocketProvider is not a constructor error', the typings says otherwise but well ...
const provider = new WebsocketProvider("<host>", { ... })
Я пытался поиграть с различными tsconfig.json
параметрами модуля и импорта по умолчанию, но безуспешно. Не уверен, что еще не работает, но, по крайней мере, у меня есть обходной путь.
Надеюсь, это поможет кому-то еще.
Мэтт