node.js socket 如何实现 接受 laravel 通知, 对单一用户发送数据

参照 realtime-laravel-app-with-socket-io 视频实现的

laravel 部分 给redis指定频道推送一条数据,

Route::get('redis', function () {
    $data = [
        'evnet' => 'test',
        'data'  => [
            'name' => [1, 2, 3, 4, 4, 5, 667, 123],
        ],
    ];
    \Redis::publish('test-channel', json_encode($data));
    return view('welcome');
});

node.js 部分, 订阅一个 redis 的频道, 利用 socket.io 推送给前端

var http = require('http').Server();
var io = require('socket.io')(http);
var Redis = require('ioredis');
var redis = new Redis();
// 订阅频道
redis.subscribe('test-channel');
redis.on('message', function (channel, messages) {
    messages = JSON.parse(messages);
    console.log(messages, channel);
    io.emit(channel, messages.data);
});
// web server
http.listen(3000, function () {
    console.log('server listen');
});

html 部分, socket 监听 频道, 获取 node 给到的数据

 var socket = io('192.168.88.20:3000');
    socket.on('test-channel', function (data) {
    console.log(data);
});

这样的每个打开的游览器都能够接受到数据,
可是实际中应该是根据 不同的用户去发送不同的数据, 我想过根据 UID 来实现, 但是现在 UID 是自增的, 如果我随便改下不就也能接受到别人的数据了吗,

这个判断应该在 laravel 完成还是 node 来完成呢?

JellyBool
修改的评论也不能少于六个字哦!
sodasix
修改的评论也不能少于六个字哦!
zonghua
修改的评论也不能少于六个字哦!
sodasix
修改的评论也不能少于六个字哦!
xiqincai6
修改的评论也不能少于六个字哦!
sodasix
修改的评论也不能少于六个字哦!
xiqincai6
修改的评论也不能少于六个字哦!