Closed ozomer closed 1 year ago
Why not contribute a PR to migrate this node rather than jump to creating your own?
I do not understand the difference between an issue and a PR. I think it should be a completely new node because it wraps a completely different package. I don't want to take responsibility on backward-compatibility.
It might wrap a different underlying package, but the externals of the node could be kept the same, with the additional features you're looking for. There's no need for it to be a new node.
If you were going to be writing the code anyway, for a small additional effort of using the existing node externals as a starting point, you could then contribute it back to the project.
My concern is that our time is limited and we'd be unlikely to look at this issue for a while - if youve got an immediate need for it to be tackled, and you've got the ability to do so, the project would certain welcome your contribution.
My suggestion is to switch from
stomp-client
to Stompit that supports heartbeats. It is also important to be able to set the "ack" subscriber header. If the "ack" header is set from "auto" to "client" or to "client-individual", there should also be a choice whether to call the ack automatically in the "stomp-in" node, or pass it on undermsg.ack
andmsg.nack
.We had a bad experience while working with CloudAMQP (not their fault). Our server crashed and restarted, and created a new subscriber connection. The old connection was not removed because it did not disconnect gracefully and there were no heartbeats. The broker kept sending half of the messages to the old connection (we are working with a queue). By the time we figured that out there was no way to restore these messages because the "ack" header was not configured (default is "auto"). It took some time to notice the problem because ~half of the messages did reach their destination (the new connection).
This issue is urgent on our platform, so I am probably going to publish
node-red-contrib-stompit
in a week. I am posting this issue just for the record, in case someone else is already working on the same thing.