QPush Gateway

QPush

License

License

GroupId

GroupId

com.github.yamingd.qpush
ArtifactId

ArtifactId

qpush-gateway
Last Version

Last Version

1.4
Release Date

Release Date

Type

Type

jar
Description

Description

QPush Gateway
QPush
Project URL

Project URL

https://github.com/yamingd/QPush
Source Code Management

Source Code Management

https://github.com/yamingd/QPush

Download qpush-gateway

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.yamingd.qpush/qpush-gateway/ -->
<dependency>
    <groupId>com.github.yamingd.qpush</groupId>
    <artifactId>qpush-gateway</artifactId>
    <version>1.4</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.yamingd.qpush/qpush-gateway/
implementation 'com.github.yamingd.qpush:qpush-gateway:1.4'
// https://jarcasting.com/artifacts/com.github.yamingd.qpush/qpush-gateway/
implementation ("com.github.yamingd.qpush:qpush-gateway:1.4")
'com.github.yamingd.qpush:qpush-gateway:jar:1.4'
<dependency org="com.github.yamingd.qpush" name="qpush-gateway" rev="1.4">
  <artifact name="qpush-gateway" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.yamingd.qpush', module='qpush-gateway', version='1.4')
)
libraryDependencies += "com.github.yamingd.qpush" % "qpush-gateway" % "1.4"
[com.github.yamingd.qpush/qpush-gateway "1.4"]

Dependencies

compile (17)

Group / Artifact Type Version
com.google.guava : guava jar 17.0
ch.qos.logback : logback-classic jar 1.0.13
org.msgpack : msgpack jar 0.6.11
org.apache.commons : commons-lang3 jar 3.3.2
com.codahale.metrics : metrics-core jar 3.0.1
org.slf4j : slf4j-api jar 1.7.5
com.github.yamingd.qpush » Protobuf jar 1.4
org.springframework : spring-context jar 3.2.11.RELEASE
org.springframework : spring-jdbc jar 3.2.11.RELEASE
org.slf4j : jul-to-slf4j jar 1.5.11
com.github.yamingd.qpush : qpush-core jar 1.4
io.netty : netty-all jar 4.0.31.Final
com.relayrides : pushy jar 0.4.3
com.google.code.gson : gson jar 2.2.4
com.github.yamingd.qpush : qpush-pipe jar 1.4
com.google.protobuf : protobuf-java jar 2.5.0
org.springframework : spring-core jar 3.2.11.RELEASE

test (1)

Group / Artifact Type Version
junit : junit jar 3.8.1

Project Modules

There are no modules declared in this project.

QPush

a push server for mobile apps. it is based on Netty.

QPush has four major parts.

  • first of all, it is Gateway which is the most important part, and for maintaining connections between mobile apps and servers.
  • the second part is the Publisher, which is receiving incoming messages or payloads from app server.
  • the third is Pipe, it flows the message from Publisher to Gateway and to the mobile phone at the end.
  • the last one is Client, it connects to Publisher and keept this connection. Your App Server can use Client to send message to Publisher directly, by providing some simple configuration such as the Publisher ip address. the overall as following( from qpush_client.properties)
host=127.0.0.1
port=8082
thread_pool=100

QPush uses MySQL as storage. and also uses Redis to pipeline the messages out to Gateway

A Simple diagram of QPush

Payload follows Apple's APNS message structure. as following

{
"aps":
{
    "alert": "your message title is here",
    "badge": total number of remind,
    "sound": "the voice file you want to play while receiving message"
 },
"userInfo":
{
    "key1": "value1",
    "key2": "value2"
  }
}

userInfo part is optional. and at the mean time. Apple's APNS message is limited to 256 bytes. you should keep that in mind.

使用

https://github.com/yamingd/QPush/wiki

Versions

Version
1.4
1.2
1.1