Javascript 如何在socket.io-client中建立连接并作出反应?
我在将socket.io-client与react一起使用时遇到问题。我刚刚开始如何使用它,所以我想在控制台中显示一条消息时,有一个连接,但控制台中没有显示任何内容。是的,我已经运行了react应用程序和服务器 server.jsJavascript 如何在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 = ''
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 很有效,谢谢