私は自己署名証明書付きのnodejs httpsサーバで電報ボットを設定しようとしています。Node.jsは電文のデータを返すことができませんwebsocket
SSL証明書:
openssl req -newkey rsa:2048 -sha256 -nodes -keyout key.pem -x509 -days 365 -out crt.pem -subj "/C=IR/ST=A.Sh/L=Tabriz/O=DominoSystem/CN=5.235.36.42"
非常に単純なサーバー:
var options = {
key : fs.readFileSync(__dirname + '/key.pem'),
cert: fs.readFileSync(__dirname + '/crt.pem')
};
https.createServer(options, function (req, res) {
console.log('https server');
console.log(req.url);
res.end('yoo hooo');
}).listen(8443,'0.0.0.0');
サーバーは、インターネットからアクセス可能である:私ができるOK {"ok":true,"result":true,"description":"Webhook was set"}
を返しsetWebhook https://5.235.36.42:8443/
電報ボット私のファイルウォールで見るログとDUメーター "Open TCP接続" nodejs.exeはテレグラムのデータセンターの1つから接続を受けていて、常にステータスがESTABLISHED
、時にはSYN_RCVD
であり、その後で閉じる& receive = 0KBですが、nodejsサーバーは任意の要求を受け取る。
私はファイアウォール(Comodo)がポート8443
のすべての着信接続を受け入れることを許可しました。私は今、2日間の周り私の頭をバッシングされている
:(誰かが5.9.1が
今、https://5.235にアクセスできません.36.42:8443 /私のサイトから? –
@これは私の個人的なip(ローカル開発システム)であり、ノードサーバーは現時点では実行されていません – Exlord
これに従ってください:https://github.com/yagop/node-telegram-bot-api/blob/master/examples/ httpsWebHook.jsを追加してみましょう:var bot = new TelegramBot( 'BOT_TOKEN'、options); bot.setWebHook( 'IP:PORT/botBOT_TOKEN'、__dirname + '/ crt.pem'); –