Мое приложение использует Net
API (https://nodejs.org/api/net.html) сокетов и принимает подключения от клиентов, которые не могут использовать какой-либо другой способ связи, кроме необработанных TCP-сокетов.
Я пытаюсь использовать pm2
с моим приложением и кластеризовать его на всех моих процессорах. К сожалению, это не работает, так как один процесс не может использовать сохраненные в памяти сокеты из других процессов.
Я ищу способ сохранить каждое соединение в базе данных, даже хранилище в памяти будет соответствовать моим потребностям, если я смогу вызвать его и использовать снова из любого другого процесса.
Кто-то еще задал почти такой же вопрос: ему сказали, что он должен просто использовать Redis для хранения сокетов. Но парень, который ответил, очевидно, не знал, как это сделать.
Вопрос был задан здесь: Будет ли PM2 работать с сетевым API Node.js?
Мой вопрос: как я могу это сделать?
На самом деле я думаю, что это просто невозможно. Что мне действительно нужно, так это способ «воссоздать» объект сокета по номеру дескриптора файла, который можно сохранить как целое число в базе данных, но, опять же, это становится действительно сложно. Я вроде застрял здесь. Документация ничего не говорит об этом.
Может быть, есть другой способ сохранить мое приложение без состояния?
Большое спасибо за чтение, я буду рад, если кто-то может помочь.