Я ломал голову, пытаясь подключить мой клиент к серверу с помощью socket.io, но безрезультатно. Мой сервер находится в узле, а клиент написан на реагировать. Он не отображается на моем сервере, когда пользователь подключается или отключается. Вот мой код -
Сервер:
const express = require('express')
const socketio = require('socket.io')
const http = require('http')
const cors = require('cors')
const PORT = process.env.PORT || 5000
const router = require('./router')
const app = express()
const server = http.createServer(app)
const io = socketio(server)
app.use(cors())
app.use(router)
io.on('connection', socket => {
console.log('User has connected.')
socket.on('disconnect', () => {
console.log("User has disconnected.")
})
})
app.listen(PORT, () => console.log(`Server running on port ${PORT}`))
Клиент (React):
import React, { useState, useEffect } from "react"
import queryString from 'query-string'
import io from "socket.io-client"
import './chat.styles.css'
let socket
const Chat = ({location}) => {
const [name, setName] = useState('')
const [room, setRoom] = useState('')
const ENDPOINT = 'http://localhost:5000/'
useEffect(() => {
const { name, room } = queryString.parse(location.search);
socket = io(ENDPOINT)
setRoom(room)
setName(name)
}, [ENDPOINT, location.search])
return (
<div className='chat'>
<h1>Test</h1>
</div>
)
}
export default Chat