Я создаю форум, на котором два пользователя после подключения могут опубликовать статус, а затем прокомментировать их. Для комментариев я использовал socket.io.
В консоли я получаю эту ошибку каждые несколько секунд:
Failed to load resource: net::ERR_CONNECTION_REFUSED
GET http://localhost/socket.io/?EIO=4&transport=polling&t=O05nump net::ERR_CONNECTION_REFUSED
Как исправить эту ошибку?
Я установил выражать, нодмон и socket.io в свой сокет-сервер:
пакет.json
{
"name": "socket",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.3",
"nodemon": "^2.0.15",
"socket.io": "^4.4.1"
}
}
app.js
const io = require("socket.io")(4000, {
cors: {
origin: "http//localhost:3000",
},
});
io.on('connection', (socket) => {
console.info('A new user is connected !');
})
io.on('disconnect', () => {
console.info('User has left !');
});
Кроме того, я установил socket.io-клиент в клиенте (спереди), затем на своей веб-странице я добавил этот код:
import { io } from 'socket.io-client'
export default () => {
//implement socket
const socket = useRef()
useEffect(() => {
socket.current = io("ws://localhost/4000")
}, [])
return (
//some html code
)
}
Форум проекта
├── back
├── client
└──index.jsx
└── socket
└──package.json
└──app.js
Консольный код Visual Studio: Консоль кода Visual Studio показывает только то, сколько раз я обновляю браузер или ctrl+S код:
[nodemon] starting 'node apde app.js'
Вы добавили косую черту вместо точки с запятой:socket.current = io("ws://localhost:4000")
Вам также нужно использовать emit
в соответствии с их документацией: socket.io/docs/v4
исправлена опечатка, НО я все еще получаю ту же проблему. Журнал консоли по-прежнему не показывает меня (подключен новый пользователь), когда я захожу на форум...