当我运行 Node 服务器时,它会一直连接和断开连接,并且不会发出命令。客户端不会收到任何发出的命令。我在服务器控制台上看到的唯一内容是 console.log
连接和断开循环。我在客户端使用 React 和 Typescript。这是我的 Node.js 服务器端代码:
let express = require("express");
let cors = require("cors");
let http = require("http");
let bodyParser = require("body-parser");
const port = 9000;
app = express();
const server = http.createServer(app).listen(port, () => {});
app.use(cors());
app.use(bodyParser.json());
app.post("/server", (req, res) => {
io.emit("command", req.body);
res.status(201).json({ status: "reached" });
});
let io = require("socket.io").listen(server);
io.on("connection", (socket) => {
console.log('user connected')
io.emit("command", 'welcome to chat');
socket.on("command", (data) => {
console.log(data)
io.emit("command", data);
});
socket.on("disconnect", ()=>{
console.log('disconnected')
})
});
和我的 React Typescript 代码:
import React, { useEffect } from 'react';
import socketIOClient from "socket.io-client";
const Actions: React.FC = () => {
const SOCKET_URL = "localhost:9000";
let socket;
const setupSocket = () => {
socket = socketIOClient(SOCKET_URL);
socket.on("command", (data) => {
console.log(data)
});
};
const sendMessage = (data) => {
socket.emit("command", data);
};
useEffect(()=>{
setupSocket()
}, []);
return (
<button onClick={()=>sendMessage('hi')}>send</button>
);
};
export default Actions;
我应该如何解决问题?