我需要帮助如何将通知推送给特定用户。我现在可以推送通知,但所有用户都会收到通知。我可以在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){
}
我检查客户是否应该收到通知,但这是不安全的......
有什么方法可以改善这个吗?