Резюме: Как я могу использовать Node.js, чтобы узнать, слушает ли что-то на данном порту?Как проверить, что служба прослушивает TCP с помощью Node.js?
Детали:
Я пишу тесты для приложения HTTP на основе в узле.
я расширил узел http.Server
с util.inherits
, и в результате «класс» завернуть стандартную функциональность .listen()
в методе моих называется .start()
. Этот метод выполняет некоторую настройку (например, подключается к MongoDB), а затем вызывает http.Server.listen(port, cb)
, когда все идет хорошо.
Моя проблема: я хотел бы написать тест, который вызывает .start()
, а затем проверяет, что сервер действительно прослушивает указанный порт. Я хотел бы сделать это без отправки HTTP-запроса для сервера. Я просто хочу проверить, что сервер слушает.
К сожалению, я не знаком с TCP, но, учитывая мой опыт работы с сканирования портов и netstat
и вещи такого рода, у меня сложилось впечатление, что что-то в net пакете узла позволит мне сделать это. Это возможно?
Почему бы не использовать обратный вызов '.listen()' и доверие к тому, что собственные модульные тесты Node.js поймут проблемы с ним? – Brad
@Brad, несколько причин: (i) Я хочу узнать, как использовать TCP и пакет 'net'; (ii) Я хочу написать набор тестов, который может определить, был ли сервер запущен или остановлен без использования каких-либо других функций. Дело не в том, что я не доверяю слушанию Узла или его испытаниям, но я хочу знать, что это произошло, _программически. –
Вы пробовали простой пример в документации? Это очень просто. http://nodejs.org/api/net.html#net_net_connect_options_connectionlistener – Brad