【发布时间】:2014-06-21 07:27:38
【问题描述】:
我想在客户端与套接字断开连接时更新时间。但是,下面的代码从“find({where: {room_id: roomId}})”行中给了我“没有方法 'indexOf'”。有人知道为什么吗?谢谢!
var roomId;
roomId = socket.on('updateStartTime', function(roomId) {
//some code
return roomId
});
socket.on('disconnect', function() {
var date = new Date();
Room.find({
where: {
room_id: roomId
}
}).complete(function(err, room) {
if (err) console.log(err);
room.updateAttributes({
end_time: date
}).success(function(room) {
console.log("end_time: " + room.end_time);
});
});
socket.broadcast.emit('updateChat', 'SERVER', socket.username + ' has disconnected...');
});
同时,它在从客户端从 socket.emit 触发事件时起作用。
roomId = socket.on('updateStartTime', function(roomId) {
var date = new Date();
Room.find({
where: {
room_id: roomId
}
}).complete(function(err, room) {
if (err) console.log(err);
room.updateAttributes({
start_time: date
}).success(function(st) {})
return roomId;
});
});
【问题讨论】:
-
老兄,您误解了事件驱动模型的工作原理。当所有客户端从房间断开连接时,您是否尝试记录?
-
@yaoxing 你好,现在聊天只有一对一。所以我想记录唯一的客户何时与房间断开连接。我是怎么误解事件驱动模型的?
标签: mysql node.js express socket.io sequelize.js