in lib/internal/Router.js [166:204]
async _backgroundConnect() {
// Local copy of _inactiveEndpoints to make sure the array is not being changed during the 'for' cycle
const endpoints = [...this._inactiveEndpoints];
const config = this._config;
const communicator = this._communicator;
const onSocketDisconnect = this._onSocketDisconnect.bind(this);
const onAffinityTopologyChange = this._onAffinityTopologyChange.bind(this);
for (const endpoint of endpoints) {
const socket = new ClientSocket(
endpoint, config, communicator,
onSocketDisconnect,
onAffinityTopologyChange);
try {
await socket.connect();
Logger.logDebug(Util.format('Connected (in background) to %s', endpoint));
// While we were waiting for socket to connect, someone could call disconnect()
if (this._state !== IgniteClient.STATE.CONNECTED) {
// If became not connected, stop this task
socket.disconnect();
return;
}
this._addConnection(socket);
}
catch (err) {
Logger.logDebug(Util.format('Could not connect (in background) to %s. Error: "%s"', endpoint, err.message));
// While we were waiting for socket to connect, someone could call disconnect()
if (this._state !== IgniteClient.STATE.CONNECTED) {
// If became not connected, stop this task
socket.disconnect();
return;
}
}
}
}