38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
|
const WebSocket = require('ws');
|
||
|
const FileSystem = require('fs');
|
||
|
|
||
|
const wss = new WebSocket.Server({ host: '192.168.46.10', port: 3000 });
|
||
|
|
||
|
wss.on('connection', function connection(ws, req) {
|
||
|
ws.remoteAddress = req.connection.remoteAddress.replace(/^.*:/, '');
|
||
|
console.log(`new client: ${ws.remoteAddress}`);
|
||
|
|
||
|
ws.on('message', function(message) {
|
||
|
console.log(`[${ws.remoteAddress}] > ${typeof message}:`, message);
|
||
|
});
|
||
|
|
||
|
ws.on('close', function(code, reason) {
|
||
|
console.log(`[${ws.remoteAddress}] client disconnected: ${code} "${reason}"`);
|
||
|
});
|
||
|
|
||
|
ws.on('error', function(err) {
|
||
|
console.log(`[${ws.remoteAddress}] error:`, err);
|
||
|
});
|
||
|
|
||
|
ws.on('ping', function() {
|
||
|
console.log(`[${ws.remoteAddress}] > ping`);
|
||
|
});
|
||
|
|
||
|
ws.send('Hello from Node.js!', { fin: true });
|
||
|
FileSystem.readFile('test.rar', (err, data) => ws.send(data) );
|
||
|
|
||
|
setTimeout(() => {
|
||
|
console.log(`disconnecting ${ws.remoteAddress} ...`);
|
||
|
ws.close();
|
||
|
}, 60000);
|
||
|
});
|
||
|
|
||
|
wss.on('listening', function() {
|
||
|
let remote = this.address();
|
||
|
console.log(`Server running at ${remote.address}:${remote.port}`);
|
||
|
});
|