QPush Client

QPush

License

License

Categories

Categories

CLI User Interface
GroupId

GroupId

com.github.yamingd.qpush
ArtifactId

ArtifactId

client
Last Version

Last Version

1.2
Release Date

Release Date

Type

Type

jar
Description

Description

QPush Client
QPush
Project URL

Project URL

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

Source Code Management

https://github.com/yamingd/QPush

Download client

How to add to project

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

Dependencies

compile (9)

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
org.slf4j : slf4j-api jar 1.7.5
io.netty : netty-all jar 4.0.15.Final
com.google.code.gson : gson jar 2.2.4
org.slf4j : jul-to-slf4j jar 1.5.11
com.google.protobuf : protobuf-java jar 2.5.0

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.2