diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8a69ea6 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,68 @@ +{ + "name": "websocketcourse", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "websocketcourse", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "ws": "^8.19.0" + }, + "devDependencies": { + "@types/node": "^25.1.0", + "@types/ws": "^8.18.1" + } + }, + "node_modules/@types/node": { + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.1.0.tgz", + "integrity": "sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..7497f93 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "websocketcourse", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://git.tuffraid.net/cowch/webSocketCourse.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs", + "dependencies": { + "ws": "^8.19.0" + }, + "devDependencies": { + "@types/node": "^25.1.0", + "@types/ws": "^8.18.1" + } +} diff --git a/server.js b/server.js new file mode 100644 index 0000000..f983973 --- /dev/null +++ b/server.js @@ -0,0 +1,18 @@ +import {WebSocketServer} from 'ws' + +const wss = new WebSocketServer({port: 8081}) + +// conmnection event + +wss.on('connection', (s, r)=>{ + const ip = r.socket.remoteAddress + + s.on('message', (rawData)=>{ + const message = rawData.toString() + console.log({rawData}) + + wss.clients.forEach((c)=>{ + if(c.readyState === 1) c.send(`Server Broadcast: ${message}`) + }) + }) +}) \ No newline at end of file