michaelkourlas / voipms-sms-client

Popular Android messaging app for VoIP.ms, a Canadian VoIP provider
https://play.google.com/store/apps/details?id=net.kourlas.voipms_sms
Apache License 2.0
226 stars 52 forks source link

A solution to GCM push notifications? #37

Closed baldurmen closed 7 years ago

baldurmen commented 9 years ago

Hmm, IMHO the only thing REALLY missing at the moment in this app is an alternative to GCM push notification.

I do think Google is evil and I try as much as possible not to use their services. I thus don't wish to download Google Play on my Android device.

Thing is, push notifications are really nice. Maybe even needed on such an app.

So yeah, what about implementing a self-hosted options for privacy minded people? I know I would be happy to run a PUSH server on my machine if it was needed.

I know it's a complicated issue, but here are two "solutions" I've found:

Both are packaged on Debian (a net plus)

dkisselev commented 9 years ago

I've looked into it in the past and just tried to do some searches now, and there really isn't a viable solution/alternative to GCM right now.

The whole idea is that Google manages a single server that your phone keeps an open connection to (and pings every few seconds when it's in standby), and that one server represents push notifications for nearly every app on your phone (all 100+of them).

If you're implementing a new server that your phone needs to ping to check for messages just for this one app, you might as well just ping voip.ms to see if there's anything new there.

UrbanAirship (and a few others) have implemented solutions like this, where they install a service which uses AlarmManager to wake up and poll their server every x seconds to push marketing messages to devices without Google accounts. But again, you're doubling the number of alarms & network traffic for the one or two apps that pay for this service.

Ideally a distributed messaging project needs to be spun up that could represent every app on your phone so that a single connection/ping will work everywhere, but that's a much bigger discussion/issue.

Perhaps something that works on a bitcoin-like message blockchain for distributing messages; apps post public but encrypted messages to the system and a message proxy server will pull out messages that are for your device and present them on the next query. You could selfhost this server or use a trusted public one.

michaelkourlas commented 9 years ago

Unfortunately, I don't really have the time to implement - for free - a large feature that'll only be used by a few people. However, if someone is willing to implement and maintain a push notification feature that doesn't rely on GCM, then please go ahead and make a pull request.

anarcat commented 8 years ago

libresignal folks are using websockets to solve that problem: https://github.com/LibreSignal/LibreSignal - i don't know much more about it than that.

anarcat commented 8 years ago

77 brings interesting possibilities here: FCM / Firebase has free software alternatives on the server side that could be ued instead of Google's.

michaelkourlas commented 7 years ago

Realistically, I don't think this is ever going to happen, so I'm going to close this and mark as wontfix for the time being.