我一直在努力尝试使用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}`))
客户(反应):
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
我发现了错误。在服务器代码中,我不小心把
app.listen(PORT, () => console.log(`Server running on port ${PORT}`))
代替
server.listen(PORT, () => console.log(`Server running on port ${PORT}`))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句