Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices.
redis.FlushDb
alias to redis.FlushDB
of go-redis (FlushDb is removed in the latest releases).
This may require updating the version of go-redis that uniqush-push
is built withsandbox
other than sandbox=true
when creating push service providers. (#249)
(This bug is not triggered when there is no sandbox
query param)Maintenance: Fix various code style warnings from code linters (e.g. gometalinter). Refactor and document code.
Bugfix: Fix the rare "No device" errors seen when retrying a push. (PR #222)
Bugfix: Fix the regular expression used as a sanity check of subscriptions and services. (PR #222)
The intended accepted characters for use in services and subscriptions were a-z, A-Z, 0-9, -, _, @ or .
Forbid using the backtick in service and subscription names (this was accidentally permitted by the invalid regex).
Continue allowing a small number of other invalid characters for now, those may be deprecated in future releases.
runtime.GOMAXPROCS(runtime.NumCPU() + 1)
).
This allows users to override this setting.
This is no longer needed because the latest releases of Go have reasonable defaults for GOMAXPROCS.slave_host
and slave_port
field to the uniqush db config.
This may help with scaling if the redis master (or sharded redis masters) have high load,
by performing read operations against the redis slave instead.Changes to APIs
New feature: Prevent creating two different push service providers of the same service name and push service type in /addpsp. (#197) Updating mutable fields of existing PSP will continue to work.
New feature: Add optional fields to subscriptions that clients can use to track information about an app with a subscription
(app_version
, locale
, subscribe_date
, devid
, old_devid
(device id)).
These can be set in calls to /subscribe
, and will be returned (if they exist) in calls to /subscriptions
Note that the subscribe_date
provided by the client must be a unix timestamp in seconds.
devid
can be used by clients to remove duplicate subscriptions (e.g. different regid/device token but the same device for GCM/APNS)
if the same device id is seen in calls to /subscribe.
(E.g. this can used in combination with subscribe_date to check which subscription was newer)old_devid
is only useful if you plan to change the way that device ids are generated in a newer release,
and want to manually remove duplicate subscriptions if they arise (e.g. for APNS).If /subscriptions is called with include_delivery_point_ids=1
, this
will return unique string identifiers for each delivery point (as delivery_point_id
) to use with /push
Make the APNS worker pool size (for the binary API) configurable at runtime. (see example in conf/uniqush-push.conf)
This controls the number of encrypted TCP connections to APNS (per active APNS Push Service Provider) that can run at a given time.
This defaults to 13 and has a maximum of 50. The default should be reasonable for most use cases.
/push
now accepts an optional parameter delivery_point_id
with a comma separated list of
delivery point ids to push to, e.g. delivery_point_id="apns:abcdef0123456789"
to push to the single subscription with that delivery point id.
Knowing the delivery point id allows clients to implement custom logic to invoke uniqush-push
's APIs
For example, a client may wish to push different payloads (or not push at all)
to endpoints running app_version
1.2.3 of your app or older.
(or base the payload on the locale of the device, etc)
This parameter only needs to be used if you want to push to some delivery points (for a subscriber) but not others.
Legacy release for uniqush-push 1.3.2. This contains packages previously hosted on uniqush.org (the packages were moved to GitHub releases)
You probably want the latest releases: uniqush-push 2.5.0 or newer
This is a bug fix version. No new features were added.
Special thanks to Ivan Yu for his bug report.
Legacy release for uniqush-push 1.3.1. This contains packages previously hosted on uniqush.org (the packages were moved to GitHub releases)
You probably want the latest releases: uniqush-push 2.5.0 or newer
This version introduced wildcard feature, which allows users use a wildcard to send notification to multiple subscribers.
For more details, read this blog post.
Legacy release for uniqush-push 1.3.0. This contains packages previously hosted on uniqush.org (the packages were moved to GitHub releases)
You probably want the latest releases: uniqush-push 2.5.0 or newer
uniqush.apns_voip=1
is part of
the query params in the call to /pushuniqush.notification.gcm
and uniqush.notification.fcm
can be used
as fields for /push
, with the JSON blob to send GCM/FCM for the
optional "notification" message.
"notification" messages will let GCM/FCM display the notification for you.bundleid
.
Currently, to make testing easy, each call to /push
must be provided with
the query param value uniqush.http=1
.
Otherwise, uniqush continues to use the APNS binary provider API.<
and >
Fixes #134
go 1.8.3+ and an up to date version of golang.org/x/net/http2 are suggested (For the APNS HTTP2 API).