Node.js 如何在routes和server.js中使用socket.io?
我正在使用带有Socket.io的Express,但我不知道如何在Express routes和server.js中同时使用Socket.io 这是我的app.jsNode.js 如何在routes和server.js中使用socket.io?,node.js,class,express,sockets,socket.io,Node.js,Class,Express,Sockets,Socket.io,我正在使用带有Socket.io的Express,但我不知道如何在Express routes和server.js中同时使用Socket.io 这是我的app.js import http from "http"; import io from "socket.io"; import express from "express"; import path from "path"; import bodyParser from "body-parser"; import cors from "co
import http from "http";
import io from "socket.io";
import express from "express";
import path from "path";
import bodyParser from "body-parser";
import cors from "cors";
import routes from "./routes";
class App {
constructor() {
this.server = express();
this.middlewares();
this.routes();
this.serverHttp = http.createServer(this.server);
this.io = io.listen(this.serverHttp);
}
middlewares() {
this.server.use(express.json());
this.server.use(
bodyParser.urlencoded({ extended: false })
);
this.server.use(bodyParser.json());
this.server.use(cors());
this.io.on("connection", socket => {
console.log("Connected");
});
this.server.use((req, res, next) => {
req.io = this.io;
next();
});
}
routes() {
this.server.use(routes);
}
}
export default new App().serverHttp;
下面的文件是my server.js
import app from "./app";
const port = process.env.PORT;
const hostname = process.env.HOST;
app.listen(port, "0.0.0.0");
当我在客户端上面尝试时,不要与服务器端通信
我成功地将所有内容放入server.js中,就像下面的代码片段一样。但是我需要请求中的io来使用emit方法
import http from "http";
import io from "socket.io";
import app from "./app";
const port = process.env.PORT;
const hostname = process.env.HOST;
const http2 = http.Server(app);
const socket = io(http2);
socket.on("connection", socket => {
console.log("Connected");
});
http2.listen(port, "0.0.0.0");
这需要大量的文字和代码,但如果您所要做的只是将socket.io消息发送到express route处理程序中向服务器发出http请求的同一个客户端,那么您可以在此处查看如何进行设置:。如果您的目标是其他的,请澄清。基本上,我需要启动服务器,并通过请求传递socket.io配置。抱歉,仍然不理解您实际要实现的目标。你之前的评论听起来像是某种可能的解决方案,而不是实际的问题。请描述实际问题。我想做X。X是什么?第一段代码是我的问题,在那里我启动socket.io,并将其导出到server.js(第二段代码)。但是客户端不能这样连接,我不知道为什么。第三段代码是显示,在单个文件中存在通信,但我无法通过请求传递套接字。这需要大量的文字和代码,但如果您所要做的只是向在express route处理程序中向服务器发出http请求的同一客户端发送socket.io消息,然后您可以在此处查看如何设置:。如果您的目标是其他的,请澄清。基本上,我需要启动服务器,并通过请求传递socket.io配置。抱歉,仍然不理解您实际要实现的目标。你之前的评论听起来像是某种可能的解决方案,而不是实际的问题。请描述实际问题。我想做X。X是什么?第一段代码是我的问题,在那里我启动socket.io,并将其导出到server.js(第二段代码)。但是客户端不能这样连接,我不知道为什么。第三段代码是显示,在单个文件中存在通信,但我无法通过请求传递套接字。