在Node.js中获取当前聊天室ID

3

我需要roomId(一个auto_increment主键)来定位特定的房间以更新聊天信息。目前我的做法很愚蠢。

createRoom.js中,我使用用户输入的表单中的roomName创建一个房间模型并找到其roomId,然后将roomId作为URL的参数:

var Room = require('../models/database').Room

exports.create = function (req, res) {


Room
    .create({
        room_name: req.body.roomName
    })
    .complete(function () {

        Room
            .find({where: {room_name: req.body.roomName}})
            .success(function (room) {


                res.redirect('rooms/videochat/' + req.body.roomName + '/' + room.room_id);


        })

    })

};

routes.js文件中,我使用req.params.roomId获取roomId并将其传递给一个Jade视图文件,以便在视频聊天页面上显示:
app.get('/rooms/videochat/:roomName/:roomId', function (req, res) {
    res.render('videochat.jade', {roomName: req.params.roomName, roomId: req.params.roomId});
});

在客户端 JavaScript 中,我使用:
var roomId = $('#roomId span').text();

获取roomId,然后使用socket.emit将其传回服务器端:

socket.emit('updateStartTime', roomId);
1个回答

0
当用户断开连接时,您需要执行以下操作。
socket.emit('disconnect', roomId);

我希望这是你所需要的。


现在它不起作用。目前只有当用户点击关闭窗口按钮时才会断开连接。 - shangsunset

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接