Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查用户是否未从事件中写入的某种方法_Javascript_Angular_Ionic Framework_Rxjs_Parse Server - Fatal编程技术网

Javascript 检查用户是否未从事件中写入的某种方法

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).

我正在制作一个聊天应用程序,它应该向用户提供一些信息。其中一个因素是,某一时刻连接到特定聊天室的用户数量

我正在为此使用Parse Server Livequeries。我的“chat”对象是一个Parse类,它包含关于特定聊天的所有信息,包括它的消息和用户数量(它是一个int)。代码如下:

   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无关。