En nodejs, comment puis-je vérifier si un port est à l'écoute ou en cours d'utilisation
Je vais être très précis ici dans l'espoir que les gens qui comprendre ce qui peut modifier à reformuler à la situation générale.
Actuellement, lorsque vous exécutez le nœud "debug", il génère un processus d'écouter sur le port 5858. Ensuite dans la société mère, d'une tentative de connexion à ce port.
Toutefois, si vous avez un autre nœud "debug" de la séance, actuellement nœud "debug" se bloque parce que le port est en cours d'utilisation.
Précisément le message que vous voyez est:
$ node debug example/gcd.js 3 5
< debugger listening on port 5858 >
connecting...
Mieux serait pour détecter que le port est en cours d'utilisation (sans connexion à ce qui pourrait gâcher un autre client qui tente de se connecter existants débogueur).
Edit: La solution retenue est maintenant dans trepanjs.
Voir aussi Node JS - Comment Pouvez-Vous Dire Si Une Socket Est Déjà Ouvert Avec Le Einaros WS Socket Module?
- Vous pouvez essayer de l'écouter sur le port et voir si vous obtenez une
EADDRINUSE
erreur. - bien que ce soit le long de la bonne idée, j'ai été à la recherche pour le code.
Vous devez vous connecter pour publier un commentaire.
Une variation sur ce qui suit est ce que j'ai utilisé:
JS:
Le réel commit qui est un peu plus impliqué est https://github.com/rocky/trepanjs/commit/f219410d72aba8cd4e91f31fea92a5a09c1d78f8
Vous devriez être en mesure d'utiliser le
node-netstat
module pour détecter les ports qui sont en train d'être écouté.Malheureusement, il semble qu'il ne prend en charge Windows et Linux, est. Cependant, les changements qui seraient nécessaires pour avoir le soutien d'OS X n'a pas l'air d'être terriblement grande.mise à JOUR: Il prend en charge OS X...er macOS...euh quoi qu'on l'appelle maintenant.node-netstat
et je voulais juste mentionner qu'il a OS X support.