Skip to content

Commit 3f2f366

Browse files
committed
Use ws instead of websocket npm library
Closes: #6
1 parent 0b092f4 commit 3f2f366

File tree

3 files changed

+20
-72
lines changed

3 files changed

+20
-72
lines changed

package-lock.json

Lines changed: 5 additions & 47 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"name": "chatExample",
3-
"version": "0.1.3",
3+
"version": "0.1.4",
44
"author": "Timur Shemsedinov <timur.shemsedinov@gmail.com>",
55
"description": "Websocket Chat Example",
66
"license": "MIT",
77
"dependencies": {
8-
"websocket": "^1.0.30"
8+
"ws": "^7.3.1"
99
},
1010
"readmeFilename": "README.md"
1111
}

server.js

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const fs = require('fs');
44
const http = require('http');
5-
const Websocket = require('websocket').server;
5+
const WebSocket = require('ws');
66

77
const index = fs.readFileSync('./index.html', 'utf8');
88

@@ -15,30 +15,20 @@ server.listen(8000, () => {
1515
console.log('Listen port 8000');
1616
});
1717

18-
const ws = new Websocket({
19-
httpServer: server,
20-
autoAcceptConnections: false
21-
});
22-
23-
const clients = [];
18+
const ws = new WebSocket.Server({ server });
2419

25-
ws.on('request', req => {
26-
const connection = req.accept('', req.origin);
27-
clients.push(connection);
28-
console.log('Connected ' + connection.remoteAddress);
20+
ws.on('connection', (connection, req) => {
21+
const ip = req.socket.remoteAddress;
22+
console.log(`Connected ${ip}`);
2923
connection.on('message', message => {
30-
const dataName = message.type + 'Data';
31-
const data = message[dataName];
32-
console.dir(message);
33-
console.log('Received: ' + data);
34-
clients.forEach(client => {
35-
if (connection !== client) {
36-
client.send(data);
37-
}
38-
});
24+
console.log('Received: ' + message);
25+
for (const client of ws.clients) {
26+
if (client.readyState !== WebSocket.OPEN) continue;
27+
if (client === connection) continue;
28+
client.send(message);
29+
}
3930
});
40-
connection.on('close', (reasonCode, description) => {
41-
console.log('Disconnected ' + connection.remoteAddress);
42-
console.dir({ reasonCode, description });
31+
connection.on('close', () => {
32+
console.log(`Disconnected ${ip}`);
4333
});
4434
});

0 commit comments

Comments
 (0)