Javascript 推手是私人的还是公共的?
嗨,伙计们,我有以下来自Pusher的代码,我已经测试过了,看起来还可以使用,比如说 Pusher app.php中的Javascript 用户表Javascript 推手是私人的还是公共的?,javascript,php,pusher,Javascript,Php,Pusher,嗨,伙计们,我有以下来自Pusher的代码,我已经测试过了,看起来还可以使用,比如说 Pusher app.php中的Javascript 用户表 ---------------------------------------------- | ID | username | password | notify_channel | |--------------------------------------------| | 1 | userA | kjdiejdk
----------------------------------------------
| ID | username | password | notify_channel |
|--------------------------------------------|
| 1 | userA | kjdiejdk | private_userA-1 |
| 2 | userB | kjdiejdk | private_userB-2 |
| 3 | userC | kjdiejdk | private_userC-3 |
---------------------------------------------
---------------------------------------------------------------------------
| INDEX | USERID | FOLLOWERS |
|--------------------------------------------------------------------------|
| 1 | userA | s:47:"array('id' => userA, 'id'=>userC, 'id' =>userD)"; |
---------------------------------------------------------------------------
跟踪表
----------------------------------------------
| ID | username | password | notify_channel |
|--------------------------------------------|
| 1 | userA | kjdiejdk | private_userA-1 |
| 2 | userB | kjdiejdk | private_userB-2 |
| 3 | userC | kjdiejdk | private_userC-3 |
---------------------------------------------
---------------------------------------------------------------------------
| INDEX | USERID | FOLLOWERS |
|--------------------------------------------------------------------------|
| 1 | userA | s:47:"array('id' => userA, 'id'=>userC, 'id' =>userD)"; |
---------------------------------------------------------------------------
对于我的每个wordpress用户,我创建了一个数据库列“NOTIFY-CHANNEL”,在本例中,为该特定用户调用private\u username-id频道
通道名称将是$wpdb->get_rows from the database andecho到javascript,因此每个用户都将拥有自己的唯一通道,因为javascript中指定的通道由服务器端脚本控制
我的问题
1) 我正在构建一个活动流,我意识到即使没有private-前缀(public channel),只要PHP中的服务器端我小心使用$pusher触发器(“channel NAME”、“EVENT\u NAME”、$data),并确保用户已登录(),即使我所有的频道都公开,似乎也没有问题
使用公共频道的缺点是什么?什么时候我必须使用私人频道?在上面的例子中,通过添加private-prefix,我已经很容易地收听了这个频道,我看不出它有多安全
所以,在我进一步使用pusher进行活动流和我的站点通知之前,任何以前的用户都可以告诉我应该如何更好地做到这一点
2) 我希望其他用户“跟随”其他用户,因此当用户A和用户B跟随用户C时,用户A和用户B将在用户C添加博客时收到通知。所以,如果用户A跟踪1000个用户,我的意思是我需要创建1000个不同的频道吗
我有上面的表格,如果我有来自userA的东西,我想发送给他的追随者,我从上面的表格中获取追随者,取消序列化并发送给他们每个人
那么,我如何为每个“追随者”创建一个新的频道呢?我被困在这里,我不理解更好地实现这一点的算法
3) 对于上面的javascript代码,我不希望将其作为内联javascript代码,而是希望将其放在一个单独的pusher-client.js中。我可以知道如何将频道名称动态地回显到pusher-client.js,或者有其他方法吗
使用公共频道的缺点是什么?我什么时候可以使用
实际上必须使用私人频道吗?在上面的例子中
只需添加private-prefix,我就可以轻松地收听到
频道,我看不出有多安全
使用公共频道的缺点是,任何人都可以订阅一个频道,并监听该频道上的事件触发。设想一个私有消息服务,如果用户a在通道C中与用户B聊天,并且用户X订阅了通道C,那么X可以查看a和B之间的所有消息
私有通道具有身份验证机制,因此通过在身份验证方法上实现逻辑代码,可以拒绝未经授权的订阅
那么,我如何为每个“追随者”创建一个新的频道呢?我被困在这里了
我不理解更好地实现这一点的算法
A后面跟着F1、F2、F3
频道名称应为:以下为-A
然后,当A发布博客时,可以通知F1、F2、F3
'
'