diff --git a/package.json b/package.json index eb3506a..9c4fe14 100644 --- a/package.json +++ b/package.json @@ -4,5 +4,8 @@ "private": true, "scripts": { "start": "node server.js" + }, + "dependencies": { + "ws": "^8.8.0" } -} \ No newline at end of file +} diff --git a/public/app.js b/public/app.js index fc976a6..eb7b467 100644 --- a/public/app.js +++ b/public/app.js @@ -12,4 +12,18 @@ function printMessage(value) { li.innerHTML = value; messages.appendChild(li); -} \ No newline at end of file +} + +const ws = new WebSocket('ws://localhost:3002'); + +ws.onopen = () => setStatus('ONLINE'); +ws.onclose = () => setStatus('DISCONNECTED'); + +ws.onmessage = response => printMessage(response.data); + +form.addEventListener('submit', event => { + event.preventDefault(); + + ws.send(input.value); + input.value = ''; +}); \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..f1c2659 --- /dev/null +++ b/readme.md @@ -0,0 +1,18 @@ +### Установка зависимостей проекта + +``` +npm i +``` + +### Установка http-server глобально + +``` +sudo npm install -g http-server +``` + +### Запуск + +``` +http-server +node server.js +``` \ No newline at end of file diff --git a/server.js b/server.js index e69de29..6a2afcc 100644 --- a/server.js +++ b/server.js @@ -0,0 +1,16 @@ +const WebSocket = require('ws'); + +const server = new WebSocket.Server({ port: 3002 }); + +server.on('connection', ws => { + ws.on('message', message => { + server.clients.forEach(client => { + if (client.readyState === WebSocket.OPEN) { + client.send(message.toString()); + } else { + client.send(client); + } + }) + }) + ws.send('Welcome'); +}) \ No newline at end of file