From 8e6807335dd0047ab8b09c69f1503adab3a5d3cc Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sat, 26 Jun 2021 22:17:25 +0800 Subject: [PATCH] chore: socketio test --- package.json | 2 ++ test/client.ts | 55 ++++++++++++++++++++++++++++++++++++++------------ tsconfig.json | 5 +++++ yarn.lock | 29 +++++++++++++++++++++++++- 4 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 tsconfig.json diff --git a/package.json b/package.json index 4729124f..4cea830e 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,12 @@ "test": "ts-node test/client.ts" }, "dependencies": { + "node-fetch": "^2.6.1", "socket.io-client": "^4.1.2" }, "devDependencies": { "@types/node": "^15.12.2", + "@types/node-fetch": "^2.5.10", "snowpack": "^3.5.9", "ts-node": "^10.0.0", "typescript": "^4.3.3" diff --git a/test/client.ts b/test/client.ts index b04faed9..a94c116f 100644 --- a/test/client.ts +++ b/test/client.ts @@ -1,22 +1,30 @@ import { io } from 'socket.io-client'; +import fetch from 'node-fetch'; -const uri = 'http://127.0.0.1:3000'; -const options = { - transports: ['websocket'], - forceNew: true, - auth: { - token: 'just for test', - }, -}; +const uri = 'http://127.0.0.1:11000'; -for (let i = 0; i < 100; i++) { - const socket = io(uri, options); +function createIO(authToken: string) { + const socket = io(uri, { + transports: ['websocket'], + forceNew: true, + auth: { + token: authToken, + }, + }); // client-side socket.on('connect', () => { - console.log(`[${i}]`, socket.id); // x8WIv7-mJelg7on_ALbx + console.log('socket.id:', socket.id); // x8WIv7-mJelg7on_ALbx - socket.emit('aaa', 'ddd'); + socket.emit( + 'test.echo', + { + name: 'moonrailgun', + }, + (d) => { + console.log(d); + } + ); }); socket.on('disconnect', () => { @@ -32,9 +40,30 @@ for (let i = 0; i < 100; i++) { }); socket.onAny((eventName: string, eventData: unknown) => { - console.log(`[${i}]`, { + console.log({ eventName, eventData, }); }); } + +fetch('http://127.0.0.1:11000/api/user/login', { + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + username: 'asd', + password: 'asd', + }), + method: 'post', +}) + .then((res: any) => res.json()) + .then((data: any) => { + const token = data.user.token; + createIO(token); + }); + +// createIO(); +// for (let i = 0; i < 100; i++) { +// createIO(i) +// } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..3e67e606 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "lib": ["DOM"], + } +} diff --git a/yarn.lock b/yarn.lock index 2352ea5c..ab8c6fd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -85,6 +85,19 @@ resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== +"@types/node-fetch@^2.5.10": + version "2.5.10" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.10.tgz#9b4d4a0425562f9fcea70b12cb3fcdd946ca8132" + integrity sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node@*": + version "15.12.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.4.tgz#e1cf817d70a1e118e81922c4ff6683ce9d422e26" + integrity sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA== + "@types/node@^15.12.2": version "15.12.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" @@ -284,7 +297,7 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -446,6 +459,15 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -873,6 +895,11 @@ negotiator@^0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + node-gyp@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae"