Как сделать так, чтобы маршрут express на моем сервере (который также является сервером socket io) ждал, пока он не получит сообщение socket io от другого процесса nodejs (клиента socket io) перед завершением?
Это так, после того, как все logi c выполнены, я могу отправить информацию, поступающую от клиента, в качестве объекта ответа из маршрута express.
В моей текущей реализации нет возможности создать событие обработчик внутри маршрута POST express для получения ссылки, поступающей от другого процесса nodejs.
app.post('/api/upload/:userId', upload.any(),(request, response) => {
fs.writeFile('/tmp/example.txt' , err => {
/* extraneous logic */
//send socketio to start the logic in the other nodejs process
io.sockets.emit('start', obj)
///...... Wait
//catch 'done' event from other nodejs process
//here, OBJ sent with a link
return response.status(200).send(JSON.stringify(objWithLink))
})
})
Процесс другого узла
socket.on('connect' , callback{
socket.on('start') ... do more logic callbacks{
/*extraneous logic */
socket.emit('done', objWithLink)
})