pushd
Version:
Blazing fast multi-protocol mobile push notification service
37 lines (28 loc) • 1.08 kB
text/coffeescript
http = require 'http'
url = require 'url'
class PushServiceHTTP
validateToken: (token) ->
info = url.parse(token)
if info?.protocol in ['http:', 'https:']
return token
constructor: (@conf, @logger, tokenResolver) ->
push: (subscriber, subOptions, payload) ->
subscriber.get (info) =>
options = url.parse(info.token)
options.method = 'POST'
options.headers =
'Content-Type': 'application/json'
'Connection': 'close'
body =
event: payload.event.name
title: payload.title
message: payload.msg
data: payload.data
req = http.request(options)
req.on 'error', (e) =>
# TODO: allow some error before removing
#@logger?.warn("HTTP Automatic unregistration for subscriber #{subscriber.id}")
#subscriber.delete()
req.write(JSON.stringify(body))
req.end()
exports.PushServiceHTTP = PushServiceHTTP