首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >网络错误:错误: connect ETIMEDOUT 149.154.167.220:443

网络错误:错误: connect ETIMEDOUT 149.154.167.220:443
EN

Stack Overflow用户
提问于 2018-05-26 02:10:09
回答 2查看 3K关注 0票数 0

我在server.js文件中有以下代码块:

代码语言:javascript
复制
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文件中的以下代码块:

代码语言:javascript
复制
const Telegram = require('telegram-node-bot');
class pingController extends Telegram.TelegramBaseController{
    pingHandler($){
        $.sendMessage('pong');
    }

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

module.exports = pingController;

最后,在否则文件中包含以下代码块:

代码语言:javascript
复制
const Telegram = require('telegram-node-bot');
class otherwiseController extends Telegram.TelegramBaseController{
    handler($){
        $.sendMessage('Sorry!!!')
}
}

module.exports = otherwiseController;

当我运行node server.js时,我得到的错误信息如下:

网络错误: error: connect ETIMEDOUT 149.154.167.220:443 at Object._errnoException (util.js:1031:13) at _exceptionWithHostPort (util.js:1052:20) at TCPConnectWrap.afterConnect as oncomplete request TelegramApiRequest { _method:'setWebhook',_params:{ url:'‘},_multipart: undefined }

另外,电报在我们国家被过滤了!,我使用的是虹吸3代理。

EN

回答 2

Stack Overflow用户

发布于 2018-05-26 02:28:28

这是因为您尚未为您的终端/cmd设置代理

对于Linux:

代码语言:javascript
复制
export http_proxy='http://proxyserveraddress:3128'    
export https_proxy='https://proxyserveraddress:3128'

对于Wndows:

代码语言:javascript
复制
set HTTP_PROXY=http://proxyserveraddress:3128    
set HTTPS_PROXY=https://proxyserveraddress:3128
票数 0
EN

Stack Overflow用户

发布于 2018-06-03 06:32:18

您可以在socks5-https-client库中使用SOCKS5代理。示例:

代码语言:javascript
复制
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
        }
    }
})

这个解决方案可以继续在你的本地PC上开发机器人(没有代理,你就不能启动来自伊朗和俄罗斯的机器人),它是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50534750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档