我正在Laravel中使用事件广播。 我正在使用基于角色的通知访问方式。我有用于广播的自定义身份验证防护。当用户连接到频道时,客户端会向服务器发送具有权限的access_token。服务器验证此access_token并允许连接(我使用3d派对服务Auth0来验证用户身份,这意味着用户每次连接到每个广播频道时,都需要花费一些时间来验证服务器端的令牌)。
我的应用中有多个要广播的事件。 我是否应该为每个用户创建多个私人渠道(每个事件一个),例如:
public function broadcastOn()
{
$users_from_db = \App\NotificationUsers::where('permission',$this->permission)->get();
foreach($users_from_db as $user){
return new PrivateChannel('connections'.$user->id);
}
}
// Permission for each event is defined in each event class as private property.
然后在服务器端检查(在route / channels.php中为闭包)用户是否具有此通道的权限,并允许或禁止他连接到该通道。当事件触发时,在其broadcastOn中,我会执行以下操作:
window.Echo.private('singleChannel.'+user_id)
.listen("Event1", (mes) => {
console.log(mes);
})
window.Echo.private('singleChannel.'+user_id)
.listen("Event2", (mes) => {
console.log(mes);
})
因此,初次加载页面上的每个用户都尝试连接到多个渠道,如果允许,他将收到通知,不允许-不接收。
或
我应该创建一个频道:
lst <- lapply(1:ncol(mtcars), function(i){
x <- mtcars[[i]]
data.frame(
Variable_name = colnames(mtcars)[[i]],
sum_unique = NROW(unique(x)),
NA_count = sum(is.na(x)),
NA_percent = round(sum(is.na(x))/NROW(x),2))
})
do.call(rbind, lst)
# Variable_name sum_unique NA_count NA_percent
# 1 mpg 25 0 0
# 2 cyl 3 0 0
# 3 disp 27 0 0
# 4 hp 22 0 0
# 5 drat 22 0 0
# 6 wt 29 0 0
# 7 qsec 30 0 0
# 8 vs 2 0 0
# 9 am 2 0 0
# 10 gear 3 0 0
# 11 carb 6 0 0
还是...其他任何变体? 什么是好习惯?