【问题标题】:Socket IO - server not connecting with my react clientSocket IO - 服务器未与我的反应客户端连接
【发布时间】:2020-06-23 21:20:22
【问题描述】:

我一直在努力尝试使用 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

【问题讨论】:

  • 你确定他们连接成功了吗?检查浏览器的“控制台”是否有任何错误。您可能有 CSRF 问题。

标签: node.js reactjs sockets socket.io


【解决方案1】:

我发现了错误。 在服务器代码中我不小心放了

app.listen(PORT, () => console.log(`Server running on port ${PORT}`))

而不是

server.listen(PORT, () => console.log(`Server running on port ${PORT}`))

【讨论】:

  • 我用相同的代码也有同样的错误,你知道我该如何解决吗,服务器没有从前端获得连接,没有任何控制台,它控制台 ERR 不安全端口
  • 是的,正如我的回答中提到的,我把 app.listen(PORT, () => console.log(Server running on port ${PORT})) 而不是 server.listen(PORT, () => console.log (Server running on port ${PORT}))
猜你喜欢
  • 2022-09-27
  • 1970-01-01
  • 2021-06-27
  • 2021-09-14
  • 1970-01-01
  • 2020-09-05
  • 1970-01-01
  • 2021-10-05
  • 2016-07-14
相关资源
最近更新 更多