Я немного запутался, почему соединение запускается несколько раз. давайте сначала начнем с моего кода
main. js
let Tokens = {};
app.getOauthToken = async function (host, port, oauthcall = false) {
if (host !== undefined && port !== undefined) {
const key = host + ":" + port;
if (Tokens[key] !== undefined) {
if(oauthcall){
console.log("already auth token present (mainjs)")
await Tokens[key].getAccessToken(false);
child.send( Tokens[key] )
}
return Tokens[key];
} else {
Tokens[key] = new Token(host, port);
if (oauthcall) {
await Tokens[key].getAccessToken(false);
console.log( " auth token in mainjs ------->", Tokens[key].token)
child.send( Tokens[key] )
}
return Tokens[key];
}
}
}
child.on('message', (m) => {
console.log(" mess from child ")
if (m && m.auth) {
app.getOauthToken(m.host, m.port, m.oauthcall);
}
});
у ребенка. js
process.send({ "auth": true, "host": url.host, "port": url.port, "oauthcall": true });
process.on('message', (m) => {
console.log("msg from parent ------------>", m )
});
вывод с 1-й попытки (fre sh начало основного. js)
mess from child
auth token in mainjs -------> { "token" :dsadaq21}
msg from parent ------------> { "token" :dsadaq21}
вывод во 2-й попытке (получено сообщение в дочернем. js 2 раза на process.on "message")
mess from child
already auth token present (mainjs)
msg from parent ------------> { "token" :dsadaq21}
already auth token present (mainjs)
msg from parent ------------> { "token" :dsadaq21}
выход в 3-й попытке (получил сообщение в потомке. js 3 раза на process.on "message")
mess from child
already auth token present (mainjs)
msg from parent ------------> { "token" :dsadaq21}
already auth token present (mainjs)
msg from parent ------------> { "token" :dsadaq21}
already auth token present (mainjs)
msg from parent ------------> { "token" :dsadaq21}
может кто-нибудь сказать мне, это ожидаемое поведение, или я делаю что-то не так или его ошибка в nodejs примечание: - я не использовал метод "close", это проблема из-за отсутствия использования close