2014-10-13 3 views
2

Позвольте мне сначала объяснить, что я подразумеваю под «выходом чисто».Как я могу узнать, почему nodejs не выходит чисто?

Если у меня есть приложение nodejs, и я делаю setTimeout в течение очень долгого времени, или если я открою соединение сокета, которое не закрываю, тогда, когда я запустил это приложение, он не выйдет. Причина вполне ясна и хорошая, я думаю, способ, которым работает nodejs, - это подождать, пока не будет «больше нечего делать», а затем выйдет. Это хорошо, и мне нравится этот способ работы. Это также заставляет меня быть немного дисциплинированным относительно закрытия сокетов чисто и не имея таймеров, лежащих вокруг. Еще одна хорошая вещь.

Однако у меня есть проблема, что мне был предоставлен некоторый код, который не соответствует этой дисциплине, и он не выходит из строя. Я подозреваю, что код где-то выходит из открытого сокета, но код минимизирован, поэтому не так просто найти точку, в которой этот сокет открывается.

Мой вопрос: есть ли способ, с помощью которого я могу запросить nodejs, чтобы узнать, какие сокеты открыты? Увидев такой список с номерами ip и таким образом, я могу начать копать, чтобы узнать, где их код открывает.

+0

Почему вы вручную закрываете розетки? // Сокеты сами закрываются всякий раз, когда клиент отключается. – Ravi

+0

Речь идет о сокетах, открытых из приложения nodejs, поэтому приложение nodejs является клиентом, а не сервером. –

+0

Получили ли вы дополнительную информацию? В настоящее время я вижу аналогичную проблему в своем приложении, и мне очень интересно, почему приложение остается открытым. – Philiiiiiipp

ответ

2

я написал пакет, чтобы помочь с этим: wtfnode

Я наткнулся на этот вопрос, пытаясь выяснить, почему я получаю так много загрузки, как и я; в то время как этот вопрос очень старый, возможно, это поможет кому-то в будущем искать похожие термины.

Без дополнительной информации из вашего исходного сообщения сложно сказать, какова была ваша конкретная проблема, но одна из возможностей - затяжные сокеты из-за поддержания HTTP-активности (как в качестве клиента, так и на сервере).

+0

wtfnode выглядит действительно хорошо. Я еще не пробовал, но это именно то, что мне было нужно. Маркировка как «правильный» ответ. Отличная работа! –

+0

Спасибо :) Извините, что не было вокруг, чтобы помочь, когда вам это нужно, но, надеюсь, больше людей найдут его, чтобы помочь им! –

Смежные вопросы