使用Express设置套接字客户端的最佳方法

使用Express设置套接字客户端的最佳方法,express,socket.io,client,structure,Express,Socket.io,Client,Structure,我一直在用Socket.IO做一个测试应用程序,我想知道哪种解决方案最适合服务于web客户机 第一个: 将服务器和客户端作为两个不同的进程 server-socket.js server-client.js 这是我的第一个解决方案,但我发现必须在服务器上运行这两个文件可能会很烦人(尽管与React的做法类似,即) 第二个: 为同一文件中的客户端和套接字提供服务 server.js 这样,我发现控制台可能会因为来自套接字和客户端的日志而变得臃肿不堪。 也许服务器正在做“太多的事情”像这样 如果有

我一直在用Socket.IO做一个测试应用程序,我想知道哪种解决方案最适合服务于web客户机

第一个: 将服务器和客户端作为两个不同的进程

server-socket.js server-client.js 这是我的第一个解决方案,但我发现必须在服务器上运行这两个文件可能会很烦人(尽管与React的做法类似,即)

第二个: 为同一文件中的客户端和套接字提供服务

server.js 这样,我发现控制台可能会因为来自套接字和客户端的日志而变得臃肿不堪。 也许服务器正在做“太多的事情”像这样


如果有更好的选择,请告诉我

谢谢你的帮助

const http = require("http").createServer();
const io = require("socket.io")(http, {
  cors: { origin: "*" },
});

const SOCKET_PORT = 8080;


http.listen(SOCKET_PORT, () => console.log(`Listening on *:${SOCKET_PORT}`));

io.on("connection", (socket) => {
  console.log("new client");
  socket.on("message", (evt) => {
    console.log(evt);
    socket.broadcast.emit("message", {
      user: evt.User.username,
      msg: evt.msg,
    });
  });
});
const express = require("express");
const app = express();
const PORT = 5000;

app.use(express.static("public"));

app.listen(PORT, () => console.log(`Listening on *:${PORT}`));
const express = require("express");
const app = express();
const http = require("http").createServer();
const io = require("socket.io")(http, {
  cors: { origin: "*" },
});

const SOCKET_PORT = 8080;
const CLIENT_PORT = 5000;

app.use(express.static("public"));

http.listen(SOCKET_PORT, () => console.log(`Listening on *:${SOCKET_PORT}`));
app.listen(CLIENT_PORT, () => console.log(`Client on *:${CLIENT_PORT}`));

io.on("connection", (socket) => {
  console.log("new client");
  socket.on("message", (evt) => {
    console.log(evt);
    socket.broadcast.emit("message", {
      user: evt.User.username,
      msg: evt.msg,
    });
  });
});