-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
android
An app for creating push notifications for new messages posted to gotify/server. (by gotify)
-
Gotify
A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui) (by gotify)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
> This is a limitation with Android and not a fundamental network/OS limitation. As long as your protocol allows for long enough keep alive latency you can periodically wake up for a short period and allow apps to service their connections (which is what I'd imagine this does anyway just with a singular app.)
The protocol does not specify how the distributor and push server communicate or keep a connection going. It's up to them to define an energy efficient way to do that. For ntfy [1], a single WebSocket or JSON stream connection is used to deliver messages to the device. This is very energy efficient and consumes <1% of battery on most phones.
As for regular wakeups (for polling), Android does not allow periodic work to be done more frequently than every 15 minutes, which is obviously not frequent enough to be useful.
> It's kind of a bummer to see bad OS architecture feed into over-complicated protocol/application design.
This is somewhat true. The restrictive Android eco-system is what led to the creation of UnifiedPush, but it's far from complicated IMHO
Disclaimer: I am the maintainer of ntfy [1], one of the UnifiedPush distributors.
[1] https://ntfy.sh
UnifiedPush is compatible with WebPush, both just involve an HTTP POST to a specific URL. If your application server supports WebPush, it can send encrypted notifications to UnifiedPush servers (that is how we're planning to support Telegram, for example). You can then decrypt these notifications in the app [1]. However, some protocols only send a wake-up ping or random ID in the push notification, like Trifa or Matrix, where encryption is unnecessarily complexity.
However, we don't use the WebPush API between the push server and distributor since there is a lot of scope for innovation in that space (for example Google's uses a custom XMPP based protocol).
[1] One example, https://github.com/UnifiedPush/dart-webpush-encryption
One of the first uses of UnifiedPush was to self-host the whole Matrix messaging stack. In fact, I'm pretty sure we had someone in the UnifiedPush chat who set this up on their ship [1]. Matrix + UnifiedPush would be perfect for a disconnected situation on ships (or Mars colonies :)
[1] https://matrix.to/#/!vwmBiTqilorqNCbGab:matrix.org/$hJpXxhVR...
[2] https://github.com/UnifiedPush/wishlist/issues/15
You can self host a Gotify server (single file executable, web interface), install the app, set it to connect to the server on the local network. Sending a message is as easy as a curl to the server. It will show up in the apps.
https://gotify.net/
https://github.com/gotify/android
The problem is that there is no iOS app. You could use the browser there but maybe ntfy would be a better fit (Android + iOS.)
You can self host a Gotify server (single file executable, web interface), install the app, set it to connect to the server on the local network. Sending a message is as easy as a curl to the server. It will show up in the apps.
https://gotify.net/
https://github.com/gotify/android
The problem is that there is no iOS app. You could use the browser there but maybe ntfy would be a better fit (Android + iOS.)
[2] https://github.com/Telegram-FOSS-Team/Telegram-FOSS/issues/5...