首页 > 解决方案 > Socket.io 节点 - 反应连接错误

问题描述

由于某种原因,我无法连接到客户端上的套接字。记录套接字一直返回 False。我尝试了官方的 Socket.io 应用程序,它运行良好。任何人都可以帮助并让我知道我在这里缺少什么吗?

服务器

const app = require('express')()
const http = require('http').Server(app)
const io = require('socket.io')()

const router = require('./router')

const PORT = process.env.PORT || 8080

io.on('connection', (socket) => {
    console.log('user connected');

    socket.on('disconnect', () => {
        console.log('user disconnected');
    })
})

app.use(router)

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

客户

import queryString from 'query-string'
import io from 'socket.io-client'

let socket;

const Chat = () => {
    const ENDPOINT = 'http://localhost:8080'
    useEffect(() => {
        socket = io(ENDPOINT)
        console.log(socket);

    })

    return (
        <div>
            Chat
        </div>
    )
}

export default Chat

解决方案

服务器正在侦听应用程序而不是 http.listen(...)

标签: node.jsreactjssocket.io

解决方案


你应该传入httpsocket.io:

const io = require('socket.io')(http);

推荐阅读