1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| export const JsonMethodType = {
| CONNECT: 0,
| SUBSCRIBE: 1,
| UNSUBSCRIBE: 2,
| PUBLISH: 3,
| PRESENCE: 4,
| PRESENCE_STATS: 5,
| HISTORY: 6,
| PING: 7,
| SEND: 8,
| RPC: 9,
| REFRESH: 10,
| SUB_REFRESH: 11
| };
|
| export const JsonPushType = {
| PUBLICATION: 0,
| JOIN: 1,
| LEAVE: 2,
| UNSUB: 3,
| MESSAGE: 4,
| SUB: 5
| };
|
| export class JsonEncoder {
| encodeCommands(commands) {
| const encodedCommands = [];
| for (const i in commands) {
| if (commands.hasOwnProperty(i)) {
| encodedCommands.push(JSON.stringify(commands[i]));
| }
| }
| return encodedCommands.join('\n');
| }
| }
|
| export class JsonDecoder {
| decodeReplies(data) {
| const replies = [];
| const encodedReplies = data.split('\n');
| for (const i in encodedReplies) {
| if (encodedReplies.hasOwnProperty(i)) {
| if (!encodedReplies[i]) {
| continue;
| }
| const reply = JSON.parse(encodedReplies[i]);
| replies.push(reply);
| }
| }
| return replies;
| }
|
| decodeCommandResult(methodType, data) {
| return data;
| }
|
| decodePush(data) {
| return data;
| }
|
| decodePushData(pushType, data) {
| return data;
| }
| }
|
|