Javascript 如何在socket.io-client中建立连接并作出反应?

Javascript 如何在socket.io-client中建立连接并作出反应?,javascript,reactjs,socket.io,backend,Javascript,Reactjs,Socket.io,Backend,我在将socket.io-client与react一起使用时遇到问题。我刚刚开始如何使用它,所以我想在控制台中显示一条消息时,有一个连接,但控制台中没有显示任何内容。是的,我已经运行了react应用程序和服务器 server.js const app = require('express') const http = require('http').createServer(app) const io = require('socket.io')(http) let subject = ''

我在将socket.io-client与react一起使用时遇到问题。我刚刚开始如何使用它,所以我想在控制台中显示一条消息时,有一个连接,但控制台中没有显示任何内容。是的,我已经运行了react应用程序和服务器

server.js

const app = require('express')

const http = require('http').createServer(app)
const io = require('socket.io')(http)

let subject = ''

io.on('connection', (socket) => {
    console.log('ahoj')
    
})

http.listen(4001,function(){
    console.log('listening on port 4001')
})
App.js

import './App.css';
import CreateSubject from './components/CreateSubject'
import Hangman from './components/Hangman'
import { HangmanProvider } from './context/HangmanContext'
import io from 'socket.io-client'

io.connect('http://localhost:4001')



function App() {
  return (
    <HangmanProvider>
      <div className="App">
        <CreateSubject/>
        <Hangman/>
      </div>
    </HangmanProvider>
  );
}

export default App;

我的控制台.log

listening on port 4001
ahoj

listening on port 4001


将其添加到server.js文件以启用cors,此处“3000”是React应用程序运行的端口

const io = require("socket.io")(http, {
  cors: {
     origin: "http://localhost:3000",
  },
});
在App.js文件中添加以下行

 import socketIOClient from 'socket.io-client';
 const ENDPOINT = 'http://localhost:4001';

 useEffect(() => {
   const socket = socketIOClient(ENDPOINT);
   socket.onAny((event, ...args) => {
    console.log(event, args);
   });
 }, []);
 
替换: 从“socket.io客户端”导入{io}

与:
从“socket.io客户端”导入socketIOClient

很有效,谢谢