web-push

Web Push is a simple protocol for delivery of real-time events to user agents using HTTP/2 server push. This can be used to send notifications to browsers using the Push API.


Keywords
mit, web, Propose Tags , Web.WebPush, Web.WebPush.Internal, Mozilla's, Google's, stack, https://tools.ietf.org/html/draft-ietf-webpush-encryption-04, https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02, https://tools.ietf.org/html/draft-ietf-webpush-protocol-10, https://tools.ietf.org/html/draft-ietf-webpush-vapid-01
License
MIT
Install
cabal install web-push-0.1.2.0

Documentation

web-push

Helper functions to send messages using Web Push protocol.

Usage

The sendPushNotification function encodes the message into Base64 URL form before encrypting and sending. Decode the message in Service Worker notification handler in browser before trying to read the JSON message.

Guides to using Web Push API in browsers can be found on Mozilla's and Google's docs, or you can check out this untested Yesod app demonstrating the use of this library.

To Do

  • Add recognition of more error/status codes from send notification HTTP response.
  • Clearly differentiate between ByteString encodings (Raw, Base64URL etc).
  • Extend tests to verify that push messages are sent properly.

References

Current implementation is based on the following versions of the drafts: