Open goosy opened 4 months ago
I have same issue and would like to add some additional explanations for the maintainers and others following this issue.
connect
event listeners occurs because multiple connect
requests are made to the same instance. If you create multiple instances of S7Endpoint and call connect
on each instance, the number of event listeners doesn't increase.autoReconnect
is not about the number of reconnection attempts, but rather a timer for the timeout to attempt reconnection. Therefore, when autoReconnect
is set to 0, S7Endpoint only attempts to connect once for each connect
request and doesn't retry further.
https://github.com/st-one-io/nodes7/blob/92a3002f89c5f8312ab6d311cc6a5b307f0a4b58/src/s7endpoint.js#L130autoReconnect
value to a positive number, you'll see that the event listeners increase just as they do with autoReconnect
disabled. As mentioned earlier, the reason for the increase in connect
event listeners is that requests are being made to the same instance.autoReconnect
to 0 and ensuring that only one connect
attempt is made per instance.If there are any inaccuracies in this explanation, please feel free to comment. I hope this issue can be resolved.
Description
When using S7Endpoint with autoReconnect disabled and manually managing reconnection, the number of 'connect' event listeners keeps increasing. This behavior doesn't occur when using the built-in autoReconnect feature.
Steps to Reproduce
Expected Behavior
The number of 'connect' event listeners should remain constant, regardless of reconnection attempts.
Actual Behavior
The number of 'connect' event listeners increases with each reconnection attempt, potentially leading to memory leaks or performance issues.
Code to Reproduce
Environment
Node.js version: 22.4.0 @st-one-io/nodes7 version: 1.1.0
Additional Observations
Questions
Impact
This issue could potentially lead to memory leaks or degraded performance in long-running applications that require frequent reconnections.
Thank you for your attention to this matter. I appreciate any insights or guidance you can provide.