最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

使用Socket.IO以及Express和NodeJS导出

IT培训 admin 6浏览 0评论

使用Socket.IO以及Express和NodeJS导出

我试图连接我的Express和Socket连接。我想我的设置很整齐,但不是在我想这样做的时候:

  1. 用户创建新房间。 POST到后端Express服务器。
  2. 然后app.post()将输入发送到导出,该导出处理所有数据库连接。
  3. 当它保存在数据库中时,通过套接字向所有人广播已添加新房间。

这可以单独使用套接字吗?是。但我不是那种生活。

RoomRouter.js

exports.createRoom = (req, response) => {
    new Room(req.body).save((err, room) => {
        response.status(200).send(room);
    });
};

app.js

/*
 * Express setup is left out, because we don't need to focus on that.
 * "app" is const app = express();
 */
const RoomRouter = require("./RoomRouter");

app.post("/room/create", RoomRouter.createRoom);

io.on("connection", (socket) => {
    //I want to broadcast the room to everyone
    //io.emit("newRoom", room);
});

Express部分工作正常,POST工作正常。现在,我如何将Socket.IO连接到那个,所以我可以向所有人广播已添加新房间?

回答如下:

我不确定你真正想要的是什么,但是如果你想在你的路线中使用socket io,我认为你必须这样声明你的路线:

RoomRouter.js

exports.createRoom = (io) => {
   return (req, response) => {
      new Room(req.body).save((err, room) => {
         io.emit("newRoom", room);
         response.status(200).send(room);
      });
   };
};

在你的app.js

app.post("/room/create", RoomRouter.createRoom(io));

希望能帮助到你。

使用Socket.IO以及Express和NodeJS导出

我试图连接我的Express和Socket连接。我想我的设置很整齐,但不是在我想这样做的时候:

  1. 用户创建新房间。 POST到后端Express服务器。
  2. 然后app.post()将输入发送到导出,该导出处理所有数据库连接。
  3. 当它保存在数据库中时,通过套接字向所有人广播已添加新房间。

这可以单独使用套接字吗?是。但我不是那种生活。

RoomRouter.js

exports.createRoom = (req, response) => {
    new Room(req.body).save((err, room) => {
        response.status(200).send(room);
    });
};

app.js

/*
 * Express setup is left out, because we don't need to focus on that.
 * "app" is const app = express();
 */
const RoomRouter = require("./RoomRouter");

app.post("/room/create", RoomRouter.createRoom);

io.on("connection", (socket) => {
    //I want to broadcast the room to everyone
    //io.emit("newRoom", room);
});

Express部分工作正常,POST工作正常。现在,我如何将Socket.IO连接到那个,所以我可以向所有人广播已添加新房间?

回答如下:

我不确定你真正想要的是什么,但是如果你想在你的路线中使用socket io,我认为你必须这样声明你的路线:

RoomRouter.js

exports.createRoom = (io) => {
   return (req, response) => {
      new Room(req.body).save((err, room) => {
         io.emit("newRoom", room);
         response.status(200).send(room);
      });
   };
};

在你的app.js

app.post("/room/create", RoomRouter.createRoom(io));

希望能帮助到你。

发布评论

评论列表 (0)

  1. 暂无评论