Closed wsky closed 11 years ago
about Message Body Formatter
JSON
string encoding:
add full MQTT support
about mqtt support and abstract for it
MessageType is field of base protocl, just use by client
new protocol https://github.com/wsky/top-push/tree/master/src/main/protocol/
base protocol is forward protocol, but not routerable currently
/*
* 1byte MessageType, or extend to 8bit usage, DUP Flag, Body Formatter,
* RETAIN
*
* 8byte from(receiving)/to(sending) id, support front<-->forward<-->back.
*
* 1byte Message body format flag
*
* 4byte remainingLength int32, do not need support longer message.
*
* ... body/content, maybe serialized by json/protobuf/msgpack/...
*
* body example, just resolve/parse by client: - publish message: {
* MessageId:"20121221000000001", Content:"hello world!" } - confirm
* message: ["20121221000000001", "20121221000000002"]
*/
// server send: server -> client, write "from"
// server receive: server <- client, read "to"
// client send: client -> server, write "to"
// client receive: client <- server, read "from"
base protocol via mqtt
/*
*
* 1byte Fixed Header:
*
* MessageType/DUP/QOS/RETAIN RETAIN
*
* 1-4byte Remaining length, max 256 MB
*
*
* PUBLISH
*
* Variable Header: Topic Name/QoS level/Message ID
*
* Payload:position=Fix-Header.length+Variable-Header.length
*
* 1byte MessageType 8byte from(receiving)/to(sending) id, support
* front<-->forward<-->back.
*
*
* [X]PUBACK:
*
* Variable Header: Message ID
*/
// payload act forward(MessageIO)
// server send: server -> client, write "from"
// server receive: server <- client, read "to"
// client send: client -> server, write "to"
// client receive: client <- server, read "from"
publish-confirm just a special usage by client, like https://github.com/wsky/top-push-integration
8byte from(receiving)/to(sending) id, support front<-->forward<-->back.
8 is not fit,
->
1byte identity bytes count identity bytes
first version https://github.com/wsky/top-push/commit/601db7b92061555141508dbddb8fcf6896b49283
MQTT is referred. http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html
MessageType
https://github.com/wsky/top-push/blob/master/src/main/java/com/tmall/top/push/messages/MessageType.java
Message Base
https://github.com/wsky/top-push/blob/master/src/main/java/com/tmall/top/push/messages/Message.java