рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдХреЛрдб рд╣реИ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдЬреЛ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдШрдЯрдирд╛рдУрдВ рдХреЛ рдбрд┐рдВрдЧ рдФрд░ рдбреЛрдВрдЧ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрдм рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрд┐рдВрдЧ рдФрд░ рдкреЛрдВрдЧ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡реЗ рдмрд╣реБрдд рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
рдЬрдм рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрд┐рдВрдЧ рдФрд░ рдкреЛрдВрдЧ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рд░реНрд╡рд░ рдХреЛрдб
const fs = require('fs');
const http = require('http');
const path = require('path');
const SocketIOServer = require('socket.io');
const app = new http.Server();
app.on('request', (req, res) => {
const index = path.join(__dirname, 'public', 'index.html')
fs.readFile(index, function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
});
app.listen(3000, 'localhost');
const io = new SocketIOServer(app);
// could also use "connection"
io.on('connect', function (socket) {
console.log(`${socket.id} "connect"`);
socket.on('ping', (data) => {
console.log('Receive "ping"');
io.emit('pong', {});
console.log('Send "pong"');
});
socket.on('disconnect', () => {
console.log(`${socket.id} "disconnect"`);
});
});
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Socket.IO Events</title>
</head>
<body>
<h1>Socket.IO Events</h1>
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
socket.on('pong', (data) => {
console.log('Receive "pong"');
});
socket.emit('ping', {});
console.log('Send "ping"');
</script>
</body>
</html>
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рднреА #1951 . рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдореИрдВ 'рдкрд┐рдВрдЧ'/'рдкреЛрдВрдЧ' рдИрд╡реЗрдВрдЯ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ - рд╕реЙрдХреЗрдЯ рдореЗрдВ рдХреЛрдб рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдЖрдИрдУ рдЬреЛ рдкрд┐рдВрдЧ рдФрд░ рдкреЛрдВрдЧ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдЧреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ - рдирд╛рдо рдмрджрд▓рдХрд░ ' рдбреНрд░рд┐рдк' рдФрд░ 'рдбреНрд░реЙрдк'
ping
рдФрд░ pong
рдИрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ socket.io-client рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рджреЗрдЦреЗрдВ https://github.com/socketio/socket.io-client#events
рдмрд╕ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП 'рдкрд┐рдВрдЧ' рдЗрд╡реЗрдВрдЯ рдореЗрдВ рдлрдВрд╕ рдЧрдпрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЧрд┐рдЯрд╣рдм рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрд░рдХреНрд╖рд┐рдд рдШрдЯрдирд╛ рдХреЗ рдирд╛рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдиреЛрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд▓реЛрдЧ рдлрд┐рд░ рд╕реЗ рдлрдВрд╕ рди рдЬрд╛рдПрдВ?
рдХреНрдпрд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рд╣рдо рд╕рднреА (рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдЯреАрдо рд╕рдореЗрдд) рдХрд╛ рдПрдХ рд╣реА рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рддреЛ ELSE рдХреНрдпрд╛ рдЖрд░рдХреНрд╖рд┐рдд рд╣реИ?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдмрд╕ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП 'рдкрд┐рдВрдЧ' рдЗрд╡реЗрдВрдЯ рдореЗрдВ рдлрдВрд╕ рдЧрдпрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЧрд┐рдЯрд╣рдм рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрд░рдХреНрд╖рд┐рдд рдШрдЯрдирд╛ рдХреЗ рдирд╛рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдиреЛрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд▓реЛрдЧ рдлрд┐рд░ рд╕реЗ рдлрдВрд╕ рди рдЬрд╛рдПрдВ?