Неизвестные соединения socket.io
Я играю с React+Socket.io, создавая простое приложение с обновлением значений в реальном времени с помощью кнопок +/-, и столкнулся с несколькими проблемами.
- Я только что узнал, что на моем сервере каждые несколько секунд появляются новые соединения с разными идентификаторами сокетов, но приложение для реагирования не работает.
- Сервер не видит эммитинг со стороны реакции.
Когда я нажимаю кнопку увеличения или уменьшения, ничего не происходит. Сервер не выводит сообщение о том, что что-то получил, но в то же время не выдает никаких ошибок.
сервер.js
const app = require('express')()
const http = require('http').Server(app)
const io = require('socket.io')(http)
io.on('connection', socket => {
console.log(`connected: ${socket.id}`)
socket.on('new-value', value => {
console.log(`new value: ${value}`);
io.emit('new-value', value);
})
})
http.listen(4000, function () {
console.log('listening on port 4000');
})
App.js
import { useState, useEffect } from 'react';
import './App.css';
import io from 'socket.io-client';
const socket = io('localhost:4000');
function App() {
const [value, setValue] = useState(0);
useEffect(() => {
socket.on('new-value', val => {
setValue(val);
})
}, []);
const dec = () => socket.emit('new-value', value - 1);
const inc = () => socket.emit('new-value', value + 1);
return (
<div className="App">
<div id="wrap">
<button type="button" onClick={dec}>-</button>
<span className="num-span">{value}</span>
<button type="button" onClick={inc}>+</button>
</div>
</div>
);
}
export default App;
вывод консоли server.js
> t3-server@1.0.0 start
> node server.js
listening on port 4000
connected: K-1X0atTHX1lgCWIAAAA
connected: 0Bq4aVquvwF1wIWkAAAB
connected: HbFvaLQEsBjjBMbUAAAC
connected: ldHBhGUo0CwtAlIGAAAD
connected: n7myM1RFNruzXhmgAAAE
connected: WIF96kQarkss29mRAAAF
connected: ieIEKOi-RLdYoN8PAAAG
connected: cUDLIqeJo_6-RzxPAAAH
connected: tixuslvbrnJ1OPK1AAAI
connected: rVVEKDPAIUpaF4FjAAAJ
connected: jepnS4tSo4DW396fAAAK
connected: wlVJ6v6JhNA8m9VdAAAL
Я пытался найти что-то в Интернете, но я до сих пор понятия не имею, откуда берутся эти связи. Я что-то упускаю?
1 ответ
Проблема была в версии socket.io-client.
Я откатился на 2.1.1 с
npm install socket.io-client@2.1.1
и теперь все работает просто отлично.