Позвольте мне сначала объяснить, что я подразумеваю под «выходом чисто».Как я могу узнать, почему nodejs не выходит чисто?
Если у меня есть приложение nodejs, и я делаю setTimeout в течение очень долгого времени, или если я открою соединение сокета, которое не закрываю, тогда, когда я запустил это приложение, он не выйдет. Причина вполне ясна и хорошая, я думаю, способ, которым работает nodejs, - это подождать, пока не будет «больше нечего делать», а затем выйдет. Это хорошо, и мне нравится этот способ работы. Это также заставляет меня быть немного дисциплинированным относительно закрытия сокетов чисто и не имея таймеров, лежащих вокруг. Еще одна хорошая вещь.
Однако у меня есть проблема, что мне был предоставлен некоторый код, который не соответствует этой дисциплине, и он не выходит из строя. Я подозреваю, что код где-то выходит из открытого сокета, но код минимизирован, поэтому не так просто найти точку, в которой этот сокет открывается.
Мой вопрос: есть ли способ, с помощью которого я могу запросить nodejs, чтобы узнать, какие сокеты открыты? Увидев такой список с номерами ip и таким образом, я могу начать копать, чтобы узнать, где их код открывает.
Почему вы вручную закрываете розетки? // Сокеты сами закрываются всякий раз, когда клиент отключается. – Ravi
Речь идет о сокетах, открытых из приложения nodejs, поэтому приложение nodejs является клиентом, а не сервером. –
Получили ли вы дополнительную информацию? В настоящее время я вижу аналогичную проблему в своем приложении, и мне очень интересно, почему приложение остается открытым. – Philiiiiiipp