node.js - 服务器不断连接和断开连接
问题描述
当我运行 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')
})
});
和我的反应打字稿代码:
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;
我应该如何解决这个问题?
解决方案
推荐阅读
- java - 通过 JUnit 5 运行并行测试类
- ios - WKWebview 在应用重新启动时不保留登录 cookie
- swift - 按钮不显示在模拟器中
- c - 在 typedef struct 中指定结构名称
- ios - UIView如何绘制相机选择器
- mysql - 在没有 FROM 子句的 SELECT 语句中相乘
- sql-server - 如何从 sql 中包含“ABCDE $1,000 $1,00,000”的列中删除 $1,000
- sql-server - 可恢复的数据库和可恢复的丢弃服务器之间有什么区别吗?
- django - Django 原始查询 - 未显示 connection.cursor() 数据
- linux - 基于公共列合并两个文件