iosignal 1.6.1 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +254 -247
- package/auth_file.json +13 -13
- package/auth_file.mjs +23 -23
- package/dist/iosignal.cjs +2 -2
- package/dist/iosignal.esm.js.map +1 -1
- package/dist/iosignal.min.js.map +1 -1
- package/index.js +19 -19
- package/indexWebBrowser.js +13 -13
- package/package.json +60 -59
- package/rollup.config.js +69 -69
- package/src/api/RedisAPI.js +65 -68
- package/src/api/api_constant.js +7 -7
- package/src/api/api_reply.js +31 -34
- package/src/api/api_sudo.js +91 -96
- package/src/auth/Auth_Env.js +76 -78
- package/src/auth/Auth_File.js +71 -75
- package/src/auth/Auth_Redis.js +44 -50
- package/src/auth/BohoAuth.js +164 -168
- package/src/client/CongPacket.js +141 -150
- package/src/client/IOCongSocket.js +81 -88
- package/src/client/IOCore.js +822 -851
- package/src/client/IOWS.js +80 -81
- package/src/client/IOWebSocket.js +111 -112
- package/src/common/constants.js +148 -159
- package/src/common/payload.js +81 -82
- package/src/common/quotaTable.js +68 -68
- package/src/common/util.js +61 -61
- package/src/server/FileLogger.js +30 -30
- package/src/server/Manager.js +433 -449
- package/src/server/Metric.js +155 -154
- package/src/server/Remote.js +207 -0
- package/src/server/{ServerRemoteCore.js → RemoteCore.js} +439 -467
- package/src/server/Server.js +163 -166
- package/src/server/serverOption.js +56 -56
- package/test-browser/favicon.ico +0 -0
- package/test-browser/index.html +96 -93
- package/test-browser/server.js +11 -11
- package/test-client-nodejs/client.cjs +17 -17
- package/test-client-nodejs/client.mjs +17 -17
- package/test-client-nodejs/client_api_reply.mjs +15 -15
- package/test-client-nodejs/stateChange.mjs +19 -19
- package/test-server/server-Auth_Env.js +19 -19
- package/test-server/server-Auth_File.js +12 -12
- package/test-server/server-api_reply.js +6 -6
- package/test-server/server-api_sudo.js +7 -7
- package/test-server/server-commonjs.cjs +8 -8
- package/test-server/server-esm.mjs +20 -19
- package/test-server/simple-server.mjs +11 -11
- package/test-signal-payloadType/signalPack.js +34 -34
- package/test-signal-payloadType/signaling.js +60 -60
- package/src/server/ServerRemote.js +0 -227
package/src/common/constants.js
CHANGED
|
@@ -1,159 +1,148 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
export const STATES = {
|
|
4
|
-
OPENING: 0,
|
|
5
|
-
OPEN: 1,
|
|
6
|
-
CLOSING: 2,
|
|
7
|
-
CLOSED: 3,
|
|
8
|
-
SERVER_READY: 4,
|
|
9
|
-
AUTH_FAIL: 5,
|
|
10
|
-
AUTH_READY: 6,
|
|
11
|
-
READY: 7,
|
|
12
|
-
REDIRECTING: 8
|
|
13
|
-
}
|
|
14
|
-
for (let c in STATES) { STATES[STATES[c]] = c }
|
|
15
|
-
|
|
16
|
-
// server side client state
|
|
17
|
-
export const CLIENT_STATE = {
|
|
18
|
-
INIT: 0,
|
|
19
|
-
SENT_SERVER_READY: 1,
|
|
20
|
-
RECV_AUTH_REQ: 2,
|
|
21
|
-
SENT_SERVER_NONCE: 3,
|
|
22
|
-
RECV_AUTH_HMAC: 4,
|
|
23
|
-
AUTH_FAIL: 5,
|
|
24
|
-
AUTH_READY: 6,
|
|
25
|
-
CID_READY: 7
|
|
26
|
-
}
|
|
27
|
-
for (let c in CLIENT_STATE) { CLIENT_STATE[CLIENT_STATE[c]] = c }
|
|
28
|
-
|
|
29
|
-
export let ENC_MODE = {
|
|
30
|
-
NO: 0,
|
|
31
|
-
YES: 1,
|
|
32
|
-
AUTO: 2
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
for (let c in ENC_MODE) { ENC_MODE[ENC_MODE[c]] = c }
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
export const SIZE_LIMIT = {
|
|
39
|
-
TAG_LEN1: 255,
|
|
40
|
-
TAG_LEN2: 65535,
|
|
41
|
-
CONNECTION_CHECKER_PERIOD: 3000,
|
|
42
|
-
PROMISE_TIMEOUT: 5000,
|
|
43
|
-
DID: 8,
|
|
44
|
-
CID: 12
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export let PAYLOAD_TYPE = {
|
|
48
|
-
EMPTY: 0,
|
|
49
|
-
TEXT: 1,
|
|
50
|
-
BINARY: 2,
|
|
51
|
-
OBJECT: 3, // one
|
|
52
|
-
MJSON: 4, // multiple
|
|
53
|
-
MBA: 5 // "meta_buffer_arguments" arbitary types. buffer
|
|
54
|
-
}
|
|
55
|
-
for (let c in PAYLOAD_TYPE) { PAYLOAD_TYPE[PAYLOAD_TYPE[c]] = c }
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
//
|
|
76
|
-
|
|
77
|
-
//
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
// api response status code
|
|
154
|
-
export const STATUS = {
|
|
155
|
-
OK: 0,
|
|
156
|
-
//0~127: success
|
|
157
|
-
//128~255: fail
|
|
158
|
-
ERROR: 255
|
|
159
|
-
}
|
|
1
|
+
|
|
2
|
+
// Client STATES: name and number
|
|
3
|
+
export const STATES = {
|
|
4
|
+
OPENING: 0,
|
|
5
|
+
OPEN: 1,
|
|
6
|
+
CLOSING: 2,
|
|
7
|
+
CLOSED: 3,
|
|
8
|
+
SERVER_READY: 4,
|
|
9
|
+
AUTH_FAIL: 5,
|
|
10
|
+
AUTH_READY: 6,
|
|
11
|
+
READY: 7,
|
|
12
|
+
REDIRECTING: 8
|
|
13
|
+
}
|
|
14
|
+
for (let c in STATES) { STATES[STATES[c]] = c }
|
|
15
|
+
|
|
16
|
+
// server side client state
|
|
17
|
+
export const CLIENT_STATE = {
|
|
18
|
+
INIT: 0,
|
|
19
|
+
SENT_SERVER_READY: 1,
|
|
20
|
+
RECV_AUTH_REQ: 2,
|
|
21
|
+
SENT_SERVER_NONCE: 3,
|
|
22
|
+
RECV_AUTH_HMAC: 4,
|
|
23
|
+
AUTH_FAIL: 5,
|
|
24
|
+
AUTH_READY: 6,
|
|
25
|
+
CID_READY: 7
|
|
26
|
+
}
|
|
27
|
+
for (let c in CLIENT_STATE) { CLIENT_STATE[CLIENT_STATE[c]] = c }
|
|
28
|
+
|
|
29
|
+
export let ENC_MODE = {
|
|
30
|
+
NO: 0,
|
|
31
|
+
YES: 1,
|
|
32
|
+
AUTO: 2
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
for (let c in ENC_MODE) { ENC_MODE[ENC_MODE[c]] = c }
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
export const SIZE_LIMIT = {
|
|
39
|
+
TAG_LEN1: 255,
|
|
40
|
+
TAG_LEN2: 65535,
|
|
41
|
+
CONNECTION_CHECKER_PERIOD: 3000,
|
|
42
|
+
PROMISE_TIMEOUT: 5000,
|
|
43
|
+
DID: 8,
|
|
44
|
+
CID: 12
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export let PAYLOAD_TYPE = {
|
|
48
|
+
EMPTY: 0,
|
|
49
|
+
TEXT: 1,
|
|
50
|
+
BINARY: 2,
|
|
51
|
+
OBJECT: 3, // one stringifiable object. it's string.
|
|
52
|
+
MJSON: 4, // multiple stringifiable obejct. it's top-level array JSON string.
|
|
53
|
+
MBA: 5 // "meta_buffer_arguments" arbitary types. it's meta-buffer-pack.
|
|
54
|
+
}
|
|
55
|
+
for (let c in PAYLOAD_TYPE) { PAYLOAD_TYPE[PAYLOAD_TYPE[c]] = c }
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
// IO message's one-byte headers.
|
|
59
|
+
export let IOMsg = {
|
|
60
|
+
|
|
61
|
+
/*
|
|
62
|
+
* 0~127dec. reserved. for text stream.
|
|
63
|
+
* 0~31: control code
|
|
64
|
+
* 32~126: ascii charactor
|
|
65
|
+
* 127: DEL
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
// ADMIN_REQ: 0xA0,
|
|
69
|
+
|
|
70
|
+
// DO NOT USE: 0xB0~ 0xBF
|
|
71
|
+
// Boho module using this numbers.
|
|
72
|
+
// AUTH_REQ : 0xB0,
|
|
73
|
+
// AUTH_NONCE: 0xB1,
|
|
74
|
+
// AUTH_HMAC: 0xB2,
|
|
75
|
+
// AUTH_ACK: 0xB3,
|
|
76
|
+
// AUTH_FAIL: 0xB4,
|
|
77
|
+
// AUTH_EXT: 0xB5,
|
|
78
|
+
// ENC_PACK : 0xB6,
|
|
79
|
+
// ENC_E2E : 0xB7,
|
|
80
|
+
// ENC_488 : 0xB8
|
|
81
|
+
// reserved ~0xBF
|
|
82
|
+
|
|
83
|
+
// C. IO status contorl.
|
|
84
|
+
SERVER_READY: 0xC0,
|
|
85
|
+
CID_REQ: 0xC1,
|
|
86
|
+
CID_RES: 0xC2,
|
|
87
|
+
QUOTA_LEVEL: 0xC3,
|
|
88
|
+
SERVER_CLEAR_AUTH: 0xC4,
|
|
89
|
+
SERVER_REDIRECT: 0xC5,
|
|
90
|
+
|
|
91
|
+
// ..
|
|
92
|
+
LOOP: 0xCB,
|
|
93
|
+
ECHO: 0xCC,
|
|
94
|
+
PING: 0xCD,
|
|
95
|
+
PONG: 0xCE,
|
|
96
|
+
CLOSE: 0xCF,
|
|
97
|
+
// ~CF
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
// D. IO data signaling
|
|
101
|
+
SIGNAL: 0xD0,
|
|
102
|
+
SIGNAL_REQ: 0xD1,
|
|
103
|
+
SIGNAL_E2E: 0xD2,
|
|
104
|
+
SUBSCRIBE: 0xD3,
|
|
105
|
+
SUBSCRIBE_REQ: 0xD4,
|
|
106
|
+
UNSUBSCRIBE: 0xD5,
|
|
107
|
+
SERVER_SIGNAL: 0xD6,
|
|
108
|
+
|
|
109
|
+
// ..
|
|
110
|
+
IAM: 0xD9,
|
|
111
|
+
IAM_RES: 0xDA,
|
|
112
|
+
|
|
113
|
+
//..
|
|
114
|
+
SET: 0xDB, //
|
|
115
|
+
RESPONSE_CODE: 0xDC,
|
|
116
|
+
RESPONSE_MBP: 0xDD,
|
|
117
|
+
|
|
118
|
+
REQUEST: 0xDE, //client public
|
|
119
|
+
RESPONSE: 0xDF,
|
|
120
|
+
// ~DF
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
// F. Framing Flow control related framing protocol.(CongPacket)
|
|
124
|
+
FLOW_MODE: 0xF0,
|
|
125
|
+
WAIT: 0xF1,
|
|
126
|
+
RESUME: 0xF2,
|
|
127
|
+
//..
|
|
128
|
+
TIME_OUT: 0xFD,
|
|
129
|
+
OVER_SIZE: 0xFE,
|
|
130
|
+
OVER_FLOW: 0xFF
|
|
131
|
+
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
for (let c in IOMsg) { IOMsg[IOMsg[c]] = c }
|
|
135
|
+
// console.log( IOMsg );
|
|
136
|
+
|
|
137
|
+
export const API_TYPE = {
|
|
138
|
+
'REQUEST_RESPONSE': 'requet_response',
|
|
139
|
+
'ONE_WAY': 'one_way'
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// api response status code
|
|
143
|
+
export const STATUS = {
|
|
144
|
+
OK: 0,
|
|
145
|
+
//0~127: success
|
|
146
|
+
//128~255: fail
|
|
147
|
+
ERROR: 255
|
|
148
|
+
}
|
package/src/common/payload.js
CHANGED
|
@@ -1,83 +1,82 @@
|
|
|
1
|
-
import { MBP } from 'meta-buffer-pack'
|
|
2
|
-
import { PAYLOAD_TYPE, IOMsg } from "./constants.js";
|
|
3
|
-
const encoder = new TextEncoder()
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export function getSignalPack(
|
|
7
|
-
if(
|
|
8
|
-
let tagEncoded = encoder.encode(
|
|
9
|
-
let payload = parsePayload(
|
|
10
|
-
|
|
11
|
-
let sigPack;
|
|
12
|
-
if(
|
|
13
|
-
sigPack = MBP.pack(
|
|
14
|
-
MBP.MB('#MsgType','8', IOMsg.SIGNAL)
|
|
15
|
-
MBP.MB('#tagLen','8', tagEncoded.byteLength),
|
|
16
|
-
MBP.MB('#tag', tagEncoded),
|
|
17
|
-
MBP.MB('#payloadType', '8', payload.type
|
|
18
|
-
|
|
19
|
-
}else if(
|
|
20
|
-
let mbaBuffer = MBP.pack(
|
|
21
|
-
sigPack = MBP.pack(
|
|
22
|
-
MBP.MB('#MsgType','8', IOMsg.SIGNAL)
|
|
23
|
-
MBP.MB('#tagLen','8', tagEncoded.byteLength),
|
|
24
|
-
MBP.MB('#tag', tagEncoded),
|
|
25
|
-
MBP.MB('#payloadType', '8', payload.type
|
|
26
|
-
MBP.MB('#mbaBuffer', mbaBuffer
|
|
27
|
-
|
|
28
|
-
}else {
|
|
29
|
-
sigPack = MBP.pack(
|
|
30
|
-
MBP.MB('#MsgType','8', IOMsg.SIGNAL)
|
|
31
|
-
MBP.MB('#tagLen','8', tagEncoded.byteLength),
|
|
32
|
-
MBP.MB('#tag', tagEncoded),
|
|
33
|
-
MBP.MB('#payloadType', '8', payload.type
|
|
34
|
-
MBP.MB('#payload', payload.buffer
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
return sigPack
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
export function parsePayload(
|
|
42
|
-
let type, pack;
|
|
43
|
-
if(
|
|
44
|
-
type = PAYLOAD_TYPE.EMPTY
|
|
45
|
-
pack = null
|
|
46
|
-
}else if(
|
|
47
|
-
if(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}else if(
|
|
53
|
-
type = PAYLOAD_TYPE.BINARY
|
|
54
|
-
pack = MBP.B8(
|
|
55
|
-
}else if(typeof args[0] === 'object'){
|
|
56
|
-
type = PAYLOAD_TYPE.OBJECT
|
|
57
|
-
pack = encoder.encode(
|
|
58
|
-
}else{
|
|
59
|
-
throw new Error('unknown payload arguments')
|
|
60
|
-
}
|
|
61
|
-
}else{ //
|
|
62
|
-
let containsBuffer = false
|
|
63
|
-
args.forEach(
|
|
64
|
-
if(
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
if(
|
|
68
|
-
type = PAYLOAD_TYPE.MBA;
|
|
69
|
-
}else{
|
|
70
|
-
type = PAYLOAD_TYPE.MJSON;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return signalPack.subarray(3 + tagLen)
|
|
1
|
+
import { MBP } from 'meta-buffer-pack'
|
|
2
|
+
import { PAYLOAD_TYPE, IOMsg } from "./constants.js";
|
|
3
|
+
const encoder = new TextEncoder()
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export function getSignalPack(tag, ...args) {
|
|
7
|
+
if (typeof tag !== 'string') throw TypeError('tag should be string.')
|
|
8
|
+
let tagEncoded = encoder.encode(tag)
|
|
9
|
+
let payload = parsePayload(args)
|
|
10
|
+
|
|
11
|
+
let sigPack;
|
|
12
|
+
if (payload.type == PAYLOAD_TYPE.EMPTY) {
|
|
13
|
+
sigPack = MBP.pack(
|
|
14
|
+
MBP.MB('#MsgType', '8', IOMsg.SIGNAL),
|
|
15
|
+
MBP.MB('#tagLen', '8', tagEncoded.byteLength),
|
|
16
|
+
MBP.MB('#tag', tagEncoded),
|
|
17
|
+
MBP.MB('#payloadType', '8', payload.type)
|
|
18
|
+
)
|
|
19
|
+
} else if (payload.type == PAYLOAD_TYPE.MBA) {
|
|
20
|
+
let mbaBuffer = MBP.pack(MBP.MBA(...args))
|
|
21
|
+
sigPack = MBP.pack(
|
|
22
|
+
MBP.MB('#MsgType', '8', IOMsg.SIGNAL),
|
|
23
|
+
MBP.MB('#tagLen', '8', tagEncoded.byteLength),
|
|
24
|
+
MBP.MB('#tag', tagEncoded),
|
|
25
|
+
MBP.MB('#payloadType', '8', payload.type),
|
|
26
|
+
MBP.MB('#mbaBuffer', mbaBuffer)
|
|
27
|
+
)
|
|
28
|
+
} else {
|
|
29
|
+
sigPack = MBP.pack(
|
|
30
|
+
MBP.MB('#MsgType', '8', IOMsg.SIGNAL),
|
|
31
|
+
MBP.MB('#tagLen', '8', tagEncoded.byteLength),
|
|
32
|
+
MBP.MB('#tag', tagEncoded),
|
|
33
|
+
MBP.MB('#payloadType', '8', payload.type),
|
|
34
|
+
MBP.MB('#payload', payload.buffer)
|
|
35
|
+
)
|
|
36
|
+
}
|
|
37
|
+
return sigPack
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
export function parsePayload(args) {
|
|
42
|
+
let type, pack;
|
|
43
|
+
if (args.length == 0) {
|
|
44
|
+
type = PAYLOAD_TYPE.EMPTY
|
|
45
|
+
pack = null
|
|
46
|
+
} else if (args.length == 1) {
|
|
47
|
+
if (typeof args[0] === 'string' || typeof args[0] === 'number') {
|
|
48
|
+
type = PAYLOAD_TYPE.TEXT
|
|
49
|
+
pack = encoder.encode(args[0] + ".") // add null byte area.
|
|
50
|
+
pack[pack.byteLength - 1] = 0 // set byte-zero : '\0' in C/C++
|
|
51
|
+
|
|
52
|
+
} else if (ArrayBuffer.isView(args[0]) || args[0] instanceof ArrayBuffer) {
|
|
53
|
+
type = PAYLOAD_TYPE.BINARY
|
|
54
|
+
pack = MBP.B8(args[0])
|
|
55
|
+
} else if (typeof args[0] === 'object') {
|
|
56
|
+
type = PAYLOAD_TYPE.OBJECT
|
|
57
|
+
pack = encoder.encode(JSON.stringify(args[0]))
|
|
58
|
+
} else {
|
|
59
|
+
throw new Error('unknown payload arguments')
|
|
60
|
+
}
|
|
61
|
+
} else { // two or more arguments.
|
|
62
|
+
let containsBuffer = false
|
|
63
|
+
args.forEach(item => {
|
|
64
|
+
if (ArrayBuffer.isView(item) || item instanceof ArrayBuffer) containsBuffer = true;
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
if (containsBuffer) {
|
|
68
|
+
type = PAYLOAD_TYPE.MBA;
|
|
69
|
+
} else {
|
|
70
|
+
type = PAYLOAD_TYPE.MJSON;
|
|
71
|
+
pack = encoder.encode(JSON.stringify(args))
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return { type: type, buffer: pack }
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function getPayloadFromSignalPack(signalPack) {
|
|
80
|
+
let tagLen = signalPack.readUint8(1)
|
|
81
|
+
return signalPack.subarray(3 + tagLen)
|
|
83
82
|
}
|
package/src/common/quotaTable.js
CHANGED
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
// table index related with:
|
|
2
|
-
// - AUTH database level
|
|
3
|
-
// - serverOption.defaultQuotaIndex
|
|
4
|
-
|
|
5
|
-
// quota example
|
|
6
|
-
// index range: 0~255.
|
|
7
|
-
export let quotaTable = {
|
|
8
|
-
// CongSocket
|
|
9
|
-
0: { // default. anonymouse:
|
|
10
|
-
signalSize: 1500,
|
|
11
|
-
publishCounter: 10,
|
|
12
|
-
trafficRate: 10000
|
|
13
|
-
},
|
|
14
|
-
1: { // auth_ultralight: eg. Arduino Uno.
|
|
15
|
-
signalSize: 255,
|
|
16
|
-
publishCounter: 10,
|
|
17
|
-
trafficRate: 100000
|
|
18
|
-
},
|
|
19
|
-
2: { // auth_light: eg. authorized ESP.
|
|
20
|
-
signalSize: 65535,
|
|
21
|
-
publishCounter: 10,
|
|
22
|
-
trafficRate: 1048576
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
// WebSocket (browser and node app)
|
|
26
|
-
3: { // authorized basic.
|
|
27
|
-
signalSize: 1048576,
|
|
28
|
-
publishCounter: 10,
|
|
29
|
-
trafficRate: 1048576 * 20
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
// WebSocket (browser and node app)
|
|
33
|
-
10: { // anonymouse
|
|
34
|
-
signalSize: 1500,
|
|
35
|
-
publishCounter: 5,
|
|
36
|
-
trafficRate: 1048576 * 20
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
11: { // authorized basic.
|
|
40
|
-
signalSize: 65535,
|
|
41
|
-
publishCounter: 10,
|
|
42
|
-
trafficRate: 1048576 * 20
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
12: { // authorized power.
|
|
46
|
-
signalSize: 1048576,
|
|
47
|
-
publishCounter: 100,
|
|
48
|
-
trafficRate: 1048576 * 20
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
-
// you can add your custom quota
|
|
52
|
-
|
|
53
|
-
// Remote service node
|
|
54
|
-
// High Quota, No root permission.
|
|
55
|
-
200: {
|
|
56
|
-
signalSize: 1048576 * 20,
|
|
57
|
-
publishCounter: 10000,
|
|
58
|
-
trafficRate: 1048576 * 100
|
|
59
|
-
},
|
|
60
|
-
// super admin or root user.
|
|
61
|
-
// to monitor, metric, sudo command, db
|
|
62
|
-
255: {
|
|
63
|
-
signalSize: 1048576 * 20,
|
|
64
|
-
publishCounter: 10000,
|
|
65
|
-
trafficRate: 1048576 * 100
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
1
|
+
// table index related with:
|
|
2
|
+
// - AUTH database level
|
|
3
|
+
// - serverOption.defaultQuotaIndex
|
|
4
|
+
|
|
5
|
+
// quota example
|
|
6
|
+
// index range: 0~255.
|
|
7
|
+
export let quotaTable = {
|
|
8
|
+
// CongSocket
|
|
9
|
+
0: { // default. anonymouse:
|
|
10
|
+
signalSize: 1500,
|
|
11
|
+
publishCounter: 10,
|
|
12
|
+
trafficRate: 10000
|
|
13
|
+
},
|
|
14
|
+
1: { // auth_ultralight: eg. Arduino Uno.
|
|
15
|
+
signalSize: 255,
|
|
16
|
+
publishCounter: 10,
|
|
17
|
+
trafficRate: 100000
|
|
18
|
+
},
|
|
19
|
+
2: { // auth_light: eg. authorized ESP.
|
|
20
|
+
signalSize: 65535,
|
|
21
|
+
publishCounter: 10,
|
|
22
|
+
trafficRate: 1048576
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
// WebSocket (browser and node app)
|
|
26
|
+
3: { // authorized basic.
|
|
27
|
+
signalSize: 1048576,
|
|
28
|
+
publishCounter: 10,
|
|
29
|
+
trafficRate: 1048576 * 20
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
// WebSocket (browser and node app)
|
|
33
|
+
10: { // anonymouse
|
|
34
|
+
signalSize: 1500,
|
|
35
|
+
publishCounter: 5,
|
|
36
|
+
trafficRate: 1048576 * 20
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
11: { // authorized basic.
|
|
40
|
+
signalSize: 65535,
|
|
41
|
+
publishCounter: 10,
|
|
42
|
+
trafficRate: 1048576 * 20
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
12: { // authorized power.
|
|
46
|
+
signalSize: 1048576,
|
|
47
|
+
publishCounter: 100,
|
|
48
|
+
trafficRate: 1048576 * 20
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
// you can add your custom quota levels.
|
|
52
|
+
|
|
53
|
+
// Remote service node
|
|
54
|
+
// High Quota, No root permission.
|
|
55
|
+
200: {
|
|
56
|
+
signalSize: 1048576 * 20,
|
|
57
|
+
publishCounter: 10000,
|
|
58
|
+
trafficRate: 1048576 * 100
|
|
59
|
+
},
|
|
60
|
+
// super admin or root user.
|
|
61
|
+
// to monitor, metric, sudo command, db access.
|
|
62
|
+
255: {
|
|
63
|
+
signalSize: 1048576 * 20,
|
|
64
|
+
publishCounter: 10000,
|
|
65
|
+
trafficRate: 1048576 * 100
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|