Ошибка сети: ошибка: подключите ETIMEDOUT 149.154.167.220:443 - PullRequest
0 голосов
/ 25 мая 2018

У меня есть этот блок кода в файле server.js:

const Telegram = require('telegram-node-bot')

const tg = new Telegram.Telegram('***********token**************',{
    workers:1
});

const pingController = require('./controllers/ping')
    ,otherwiseController = require('./controllers/otherwise')

tg.router.when(new Telegram.TextCommand('/ping','pingCommand'), new pingController())
    .otherwise(new otherwiseController());

и этот блок кода в файле ping.js:

const Telegram = require('telegram-node-bot');
class pingController extends Telegram.TelegramBaseController{
    pingHandler($){
        $.sendMessage('pong');
    }

    get routes() {
        return{
            'pingCommand': 'pingHandler'
        };
    }
}

module.exports = pingController;

и, наконец, этот блок кода в другом файле:

const Telegram = require('telegram-node-bot');
class otherwiseController extends Telegram.TelegramBaseController{
    handler($){
        $.sendMessage('Sorry!!!')
}
}

module.exports = otherwiseController;

, когда я запускаю узел server.js, я только что получил ошибку, подобную этой: [error]

Ошибка сети: Ошибка: подключите ETIMEDOUT 149.154.167.220:443 вObject._errnoException (util.js: 1031: 13) в _exceptionWithHostPort (util.js: 1052: 20) в TCPConnectWrap.afterConnect [as oncomplete] (net.js: 1195: 14) запрашивает TelegramApiRequest {_method: 'setWebhook', _params: {url: ''}, _multipart: undefined}

Кроме того, телеграмма фильтруется в нашей стране !!!, и я использую прокси-сервер Сифон 3.

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Вы можете использовать прокси SOCKS5 с socks5-https-client lib.Пример:

const TelegramBot = require('node-telegram-bot-api')
const Agent = require('socks5-https-client/lib/Agent')

const bot = new TelegramBot(process.env.TELEGRAM_API_TOKEN, {
    polling: true,
    request: {
        agentClass: Agent,
        agentOptions: {
            socksHost: process.env.PROXY_SOCKS5_HOST,
            socksPort: parseInt(process.env.PROXY_SOCKS5_PORT),
            // If authorization is needed:
            // socksUsername: process.env.PROXY_SOCKS5_USERNAME,
            // socksPassword: process.env.PROXY_SOCKS5_PASSWORD
        }
    }
})

Это решение для продолжения разработки бота на вашем локальном ПК (без прокси вы не можете запускать ботов из Ирана и России), и оно работает.

0 голосов
/ 25 мая 2018

, потому что вы не установили свой прокси для своего терминала / cmd

для Linux:

export http_proxy='http://proxyserveraddress:3128'    
export https_proxy='https://proxyserveraddress:3128'

для Wndows:

set HTTP_PROXY=http://proxyserveraddress:3128    
set HTTPS_PROXY=https://proxyserveraddress:3128
...