Я пытаюсь использовать socket.io для отправки моих данных в режиме реального времени, чтобы создать сервер:
const http = require('http').createServer();
const socket = require('socket.io')(http);
socket.on('connection', socket => {
console.log('connected:', socket.client.id);
socket.on('start', data => {
console.log('new message from client:', data);
});
socket.on("disconnect", () => console.log("Client disconnected"));
});
http.listen(3000, () => console.log(`server listening on port: ${3000}`))
В клиентской части я создаю этот скрипт:
const socket = require('socket.io-client')('http://localhost:3000');
socket.on('connect', () => {
// socket connected
socket.emit('start', { my: 'data' });
setInterval(() => {
socket.disconnect();
}, 1000);
});
Представьте себе, что после этого клиент подключается к серверу и отправляет данные на сервер, хочет отключиться от сервера, поэтому я вставил эту команду:
setInterval(() => {
socket.disconnect();
}, 1000);
Когда эта команда выполняется, я получил эту ошибку:
D:\Projects\NodeJs\SafaProjects\socket\client>node client.js
D:\Projects\NodeJs\SafaProjects\socket\client\node_modules\socket.io-client\lib\socket.js:136
Socket.prototype.emit = function (ev) {
^
RangeError: Maximum call stack size exceeded
at Socket.emit (D:\Projects\NodeJs\SafaProjects\socket\client\node_modules\socket.io-client\lib\socket.js:136:34)
at Socket.socket.on (D:\Projects\NodeJs\SafaProjects\socket\client\client.js:13:12)
at Socket.Emitter.emit (D:\Projects\NodeJs\SafaProjects\socket\client\node_modules\component-emitter\index.js:133:20)
at Socket.emit (D:\Projects\NodeJs\SafaProjects\socket\client\node_modules\socket.io-client\lib\socket.js:138:10)
at Socket.socket.on (D:\Projects\NodeJs\SafaProjects\socket\client\client.js:13:12)
at Socket.Emitter.emit (D:\Projects\NodeJs\SafaProjects\socket\client\node_modules\component-emitter\index.js:133:20)
at Socket.emit (D:\Projects\NodeJs\SafaProjects\socket\client\node_modules\socket.io-client\lib\socket.js:138:10)
at Socket.socket.on (D:\Projects\NodeJs\SafaProjects\socket\client\client.js:13:12)
at Socket.Emitter.emit (D:\Projects\NodeJs\SafaProjects\socket\client\node_modules\component-emitter\index.js:133:20)
at Socket.emit (D:\Projects\NodeJs\SafaProjects\socket\client\node_modules\socket.io-client\lib\socket.js:138:10)
Как клиент может отключиться от сервера без ошибок?