服务器不断连接和断开连接

时间:2021-04-06 13:34:34

标签: node.js reactjs typescript socket.io

当我运行 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;

我应该如何解决问题?

0 个答案:

没有答案
相关问题