/
server.js
36 lines (27 loc) · 912 Bytes
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'use strict';
const express = require('express');
const { Server } = require('ws');
const PORT = process.env.PORT || 3000;
const INDEX = './index.html';
const server = express()
.use('/public', express.static('public'))
.use((req, res) => res.sendFile(INDEX, { root: __dirname }))
.listen(PORT, () => console.log(`Listening on ${PORT}`));
const wss = new Server({ server });
//當 WebSocket 從外部連結時執行
wss.on('connection', ws => {
//連結時執行此 console 提示
console.log('Client connected');
ws.on('message', data => {
//取得所有連接中的 client
let clients = wss.clients
//做迴圈,發送訊息至每個 client
clients.forEach(client => {
client.send(data);
});
});
//當 WebSocket 的連線關閉時執行
ws.on('close', () => {
console.log('Close connected');
});
});