NodeJS バージョン: LTS 12.17 は次のようにインストールされます。
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install nodejs
私はかなり奇妙な問題を抱えています:
私のNodeJSアプリの1つが突然報告します:listen EADDRINUSE: address already in use
そして、どのポートに変更しようとしても何の役にも立ちません。
完全なトレース スタックは次のようになります。
Error: listen EADDRINUSE: address already in use 0.0.0.0:6080
at Server.setupListenHandle [as _listen2] (net.js:1313:16)
at listenInCluster (net.js:1361:12)
at doListen (net.js:1498:7)
at processTicksAndRejections (internal/process/task_queues.js:85:21)
私はこのように聞いています (_wl = Winston logger インスタンス):
> _server.listen(_port, '0.0.0.0', function () { _wl.info('SERVER STARTED! (listening on port # ' + _port + ')')});
このAWS EC2 Ubuntu 20.04インスタンスをセットアップしたばかりなので、どういうわけかこれと関係があると思います. 以前のWindowsの多くの異なるインスタンスで何年も働いてきました(以前はUbuntuで実行したことがなかったと思います)。
私は次のように実行します:
1. cd into folder
2. node ./server.js (I have also tried to use Sudo)
権限と関係がありますか?
サーバーのセキュリティグループですべての出入りトラフィックを許可しようとしました。
Ubuntu 20.04 のファイアウォールも無効になっていることを確認しました。
また、同じサーバーで Web ソケット サーバーを公開する Python アプリを実行していますが、NodeJS アプリはこの接続をサブスクライブすることに問題はありません...
はい、サーバーで使用されているすべてのポートを確認しようとしましたが、使用されているポートはごくわずかです。NodeJS アプリは、特定のポートで websocket サーバーを公開しようとしますが、どのポートを使用しようとしても、上記のエラーが発生します。