Open sonnyp opened 4 years ago
Hey, thanks for reaching out!
What do you mean by component connection? I don't control the sender side, so s2s is required for pubsub communication: https://xmpp.org/extensions/xep-0357.html#enabling
On Thu, Jan 30, 2020 at 8:20 AM Sonny Piers notifications@github.com wrote:
Hi,
maintainer / author of node-xmpp/xmpp.js here
Thanks for sharing RubDub, was pretty useful for me to understand how XMPP push worked.
node-xmpp is deprecated in favor of xmpp.js, I'm considering writing something very similar to RubDub using xmpp.js component https://github.com/xmppjs/xmpp.js/tree/master/packages/component
Would that be something you would be interested in? I'd be happy to share it if others are benefiting from or contributing to it.
Is there any specific reason why you used s2s instead of component connection?
If so, s2s is also on my roadmap for xmpp.js so that might be an option too.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ChatSecure/RubDub/issues/13?email_source=notifications&email_token=AAD6UH2VTHRXMIFEQJW342DRAL43XA5CNFSM4KNY3PJKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IJ4LF4A, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAD6UH27UT76KC7VB2JQGSLRAL43XANCNFSM4KNY3PJA .
@chrisballinger ah of course, makes sense.
My use case is slightly different, we own and control the server of the app.
However, they are 2 options to make the component/service federation friendly:
Pro: Works immediately Con: Requires an additional service
Pro: Makes the service easier to use/deploy Con: More work
Unfortunately xmpp.js does not support s2s yet but it should be fairly easy to do by taking inspiration from node-xmpp-server.
The current middleware API of xmpp.js allows clients, components and servers to share the same handlers so supporting both transports (component and s2s) is free of abstractions.
In any case I can give a small update here if/when we've made progress.
Actually for option 1. any XMPP server with component connections support can be used. If you don't need/want c2s you can just disable it.
If I feel motivated enough one of these days I might rewrite it in Rust, or switch to using this Prosody module: https://github.com/tmolitor-stud-tu/mod_push_appserver
If I feel motivated enough one of these days I might rewrite it in Rust, or switch to using this Prosody module: https://github.com/tmolitor-stud-tu/mod_push_appserver
What about using Apache Vysper
?
Apache Vysper
is a library that have a full featured XMPP server. Using it would simplify things because instead of having 2 servers, one that accept XMPP s2s connections and another one who forward the push events to the appropriate service (APNS, GCM, etc...) all this can be bundled inside a single server.
Hi,
maintainer / author of node-xmpp/xmpp.js here
Thanks for sharing RubDub, was pretty useful for me to understand how XMPP push worked.
node-xmpp is deprecated in favor of xmpp.js, I'm considering writing something very similar to RubDub using xmpp.js component
Would that be something you would be interested in? I'd be happy to share it if others are benefiting from or contributing to it.
Is there any specific reason why you used s2s instead of component connection?
If so, s2s is also on my roadmap for xmpp.js so that might be an option too.