Javascript 聊天应用程序-当有人进出房间时,用声音通知用户

Javascript 聊天应用程序-当有人进出房间时,用声音通知用户,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,我调整了firebase聊天应用程序(快速入门教程中提供的应用程序),并将用户状态信息添加到其中,即,当任何用户进入或离开房间时,会向其他用户显示一条消息。例:用户A已加入 现在,我尝试在用户离开或进入房间时向应用程序添加声音通知。我正在使用ngAudio模块来执行此操作。但是,到目前为止,我还不能实现这个功能 目前,我已经试过了。 我正在使用浅表不断检查chatstatus数组 $scope.$watchCollection('chatstatus', function (newVal, ol

我调整了firebase聊天应用程序(快速入门教程中提供的应用程序),并将用户状态信息添加到其中,即,当任何用户进入或离开房间时,会向其他用户显示一条消息。例:用户A已加入

现在,我尝试在用户离开或进入房间时向应用程序添加声音通知。我正在使用
ngAudio
模块来执行此操作。但是,到目前为止,我还不能实现这个功能

目前,我已经试过了。 我正在使用浅表不断检查
chatstatus
数组

$scope.$watchCollection('chatstatus', function (newVal, oldVal) { 

         if ($scope.chatstatus[$scope.chatstatus.length-1].status.indexOf("joined") > -1) {
            $scope.joinedplay.play();

        }
        else{
            $scope.leftplay.play();
         }

    });
但是当我这样做的时候,只有登录的用户得到声音通知,而其他用户没有(很明显,因为控制器只是为他执行的)

我还尝试使用ngRepeatFinished指令(在显示列表的最后一个元素时触发声音通知)。但这也不行

我已经为此做了一个,我确实希望我的应用程序能够像这个plunk一样运行

在两个不同的选项卡(或浏览器)中打开plunk,并与两个用户加入聊天室。当两个用户中的一个加入/离开时,另一个会收到
警报。这是可行的,因为我们将访问相同的plunk

但如何实时实现这一点呢?


注意:在上面的示例中,我使用了
警报
而不是音频,因为它更易于演示。

我找到了解决方案。使用
Firebase.on()
解决了问题。

 statusref.on('child_added', function(childSnapshot, prevChildKey) {
            var postsData = null;
            postsData = childSnapshot.val();
            logResults(postsData);
    });

    function logResults(postsData) {
        if (postsData.status.indexOf("joined") > -1) {
            $scope.joinedplay.play();

        }
        else{
            $scope.leftplay.play();
         }
    }