我需要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);发布于 2014-05-06 22:55:35
当用户断开连接时,您需要执行以下操作
socket.emit('disconnect', roomId);我希望这就是你需要的。
https://stackoverflow.com/questions/23497909
复制相似问题