如何将通知推送到特定用户Node + AngularJS + Laravel

时间:2015-09-13 12:50:19

标签: javascript angularjs node.js redis laravel-5

我需要帮助如何将通知推送给特定用户。我现在可以推送通知,但所有用户都会收到通知。我可以在clinet方面过滤它,但我认为它是不安全的......

首先我用laravel 5发送数据:

$redis = Redis::connection();
$redis->publish('update.answer', json_encode($events));

这是我的node.js我的数据:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var Redis = require('ioredis');
var redis = new Redis();
redis.subscribe('update.group', function(err, count) {
});
redis.subscribe('update.question', function(err, count) {
});
redis.subscribe('update.answer', function(err, count) {
});
redis.subscribe('update.comment', function(err, count) {
});
redis.on('message', function(channel, message) {
    message = JSON.parse(message);
    console.log(message);
    io.emit(channel, message);
});
http.listen(3000, function(){
    console.log('Listening on Port 3000');
});

并使用angularjs我获取数据并推送到客户端。

socket.on('update.answer',function(data){
            if($scope.remove){
                $scope.remove = false;
            }
            $scope.feed = $("#feed").val();
            if(parseInt($scope.feed) === parseInt(data.userID)){
            $scope.answers.push(data);
            $scope.$digest();
            }
        });

这部分:

 $scope.feed = $("#feed").val();
                    if(parseInt($scope.feed) === parseInt(data.user_id) && data.admin_id !== null){

}

我检查客户是否应该收到通知,但这是不安全的......

有什么方法可以改善这个吗?

0 个答案:

没有答案