【发布时间】:2018-04-17 20:20:42
【问题描述】:
!!! 服务端-socket如何改变通道动态
例如,当我使用 /fire/1 广播时,我只想发送到 /room/1。
目前它发送到 /room/1、/room/2、/room/3 等。因为这里默认情况下,服务器上的所有内容都订阅了“测试频道”。我就是想不通。
var server = require('http').Server();
var io = require('socket.io')(server);
var Redis = require('ioredis');
var redis = new Redis();
io.on('connection', function(socket){
console.log('New User Conected here');
redis.subscribe('test-channel');
redis.on('message', function(subscribed ,channel, message) {
console.log(channel);
message = JSON.parse(message);
socket.emit(channel + ':' + message.event, message.data);
});
socket.on('joinRoom', function(room ){
console.log('Join in this Room '+ room);
socket.join(room);
});
});
server.listen(3000);
event | php
public function broadcastOn()
{
return ['test-channel']; // static
}
【问题讨论】:
标签: laravel-5 redis socket.io vuejs2