UnifiedPush instead proprietary and spy google FCM

I didn’t find if anyone offered it before.
I offer to devs to implement UnifiedPush for notifications instead Google FCM. It is in stable phase now and many apps already use it including Rocket.chat competitor - Matrix client side apps.

It will move away some limits which google take on Rocket.chat main server for.notifications too, at least for users who choose UnifiedPush and own UnifiedPush servers for notifications.

And MAIN point - google will not be able to spy and trace on own rocket.chat servers and their clients!

Hi!

Thanks for your idea! I’ll share it internally.

This is indeed very interesting and is in line with what Rocket.Chat is all about.

We’ve looked at options like this in the past. There was a solution called own push that came and offered themselves as a solution. But they never fully open sourced.

Is unifiedpush actually open source fully?

@aaron.ogle UnifiedPush is a standard for pushing notification.
It has been implemented by various servers (called distributors) (https://unifiedpush.org/users/distributors/) and associated mobile apps.

All the distributors I could see are fully opensource (MIT, Apache 2, AGPL and GPL licences).

One implementation even uses Google’s service (Firebase Cloud Messenger) as distributor: https://unifiedpush.org/users/distributors/fcm/

From a user experience perspective, I like how FluffyChat app manage this: if it sees no Google Service on the phone, it will then try to see if there is a UnifiedPush app on it.

(Was just searching whether Rocket.chat offered UnifiedPush options - found this thread - created the account just to answer your questions. I don’t know the forum’s etiquette, so I hope I haven’t been rude in any way. Just wanted to add my bit of knowledge to the conversation.
I’m not affiliated with unifiedpush, just interested in having Google-free notifications).

2 Likes

That’s pretty interesting. So depends on unified push app being on the phone, and it uses that to register for pushes instead of talking to google to register?

So I guess it registers and then returns the server address + a registration token both of which can be sent back to Rocket.Chat. Then when sending it would instead of using just a single push gateway would see the unified push and hit that server with the token?

Or am I missing the ball?

Yes, Rocket Chat would use the unified push app to register, and receive an endpoint in return. The endpoint contains both the server address and the token: it would be something like https://myunifiedpushserver.example.com/e20757897df804de3d. The path of the URL is a “topic” which should be random enough to act as a registration token.

The RC app would then relay this to the RC server.

Finally, the server would POST to that address with the payload in the body, and the server would relay that to the unified push app, which would forward it to the RC app.

There are some docs on how to use this on android, including a sample application: Android | UnifiedPush

Any E2EE should be handled by RC when sending/receiving the messages, as far as I know.

I just joined this forum; however, after a quick read i noticed that this suggestion is limited to Android only, not cross-platform. The idea of leaving google out of the equation is tremendous; however, you seem to be stuck if you would like to notify other platforms.