Middleware/PushNotifications

Target audience
This page is targeted foremost at platform developers (Vendors) that want to establish and integrate a push notification infrastructure for their project, secondly at developers who want to use/receive push notifications in their applications.

Nemo and Sailfish serve as reference users/targets for this.

Intermediate / Test Platform
TBR has set up a Mosquitto/MQTT based serice that can be used for experiments and also as an interim production environment for apps in need of push notifications right now.

Host: devaamo.fi

Port: 1883 (regular), 1884 (limited testing, without authentication), soon also 8883 for TLS with client cert auth.

Topics:
 * sailfish/broadcast/… (readable by every client, also without authentication)
 * sailfish/username/… (only accessible to authenticated clients)
 * $SYS/… (server status information)

Credentials can be requested from tbr on IRC by priv-msg.

For Python use there is a patched version of Apache Paho: https://github.com/dm8tbr/org.eclipse.paho.mqtt.python It has IPHB support added and will wake up at fixed intervals to prevent timeouts.

Client libraries (currently without IPHB patches) are available currently from a personal OBS repository: https://build.merproject.org/project/show/home:tbr:mqtt

Direct repo URL for Sailfish packages: http://repo.merproject.org/obs/home:/tbr:/mqtt/sailfish_latest_armv7hl/

Adding repo to device: ssu ar tbr-mqtt http://repo.merproject.org/obs/home:/tbr:/mqtt/sailfish_latest_armv7hl/

To explore MQTT based push notifications on Sailfish you can use this irssi script to send you all sorts of notifications. https://github.com/dm8tbr/irssi-mqtt-notify There is also some client side code in Python to convert the push message to a Sailfish platform notification.

Platform Evolution
Architecture and features of a future service are under discussion on Freenode IRC: #sailfishos-push