Javascript 检查用户是否未从事件中写入的某种方法
我正在制作一个聊天应用程序,它应该向用户提供一些信息。其中一个因素是,某一时刻连接到特定聊天室的用户数量 我正在为此使用Parse Server Livequeries。我的“chat”对象是一个Parse类,它包含关于特定聊天的所有信息,包括它的消息和用户数量(它是一个int)。代码如下:Javascript 检查用户是否未从事件中写入的某种方法,javascript,angular,ionic-framework,rxjs,parse-server,Javascript,Angular,Ionic Framework,Rxjs,Parse Server,我正在制作一个聊天应用程序,它应该向用户提供一些信息。其中一个因素是,某一时刻连接到特定聊天室的用户数量 我正在为此使用Parse Server Livequeries。我的“chat”对象是一个Parse类,它包含关于特定聊天的所有信息,包括它的消息和用户数量(它是一个int)。代码如下: getLocationName().then( area => { // I get the area assignOrCreateChat(area).
getLocationName().then( area => { // I get the area
assignOrCreateChat(area).then( r => {
let chat:any = r; // fix
// Open a subscription to the chat
let query = new Parse.Query("Chat");
query.equalTo("objectId", chat.id);
let subscription = query.subscribe();
// Set the event handlers
subscription.on('open', () => {
let num = chat.get("userCount");
if(isNaN(num)){
num = 1;
}else{
num += 1;
}
chat.set("userCount", num);
chat.save();
});
subscription.on('close', () => {
chat.set("users", chat.get("users")-1);
chat.save();
})
// subscription.emit("open");
}).catch(e => console.log(e))
}).catch(e => console.log(e));
正如您可能已经猜到的,除了关闭事件之外,所有操作都非常完美。显然,我可以做一个简单的:
subscription.emit("close");
。。。在关闭窗口时触发的某些应用程序事件上(如Ionic应用程序中的Ionic ViewDidLeave),但如果应用程序崩溃、与服务器断开连接,则无法工作,或者任何其他不太罕见的情况。这些情况会导致这个数字越来越大,而不能真正代表真正的用户
那么,为了对连接到特定聊天室的用户进行真实评估,我可以采取什么方法
谢谢大家!
rxjs
标记似乎有误导性,因为问题和代码样本都与rx无关。rxjs
标记似乎有误导性,因为问题和代码样本都与rx无关。