Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 推手是私人的还是公共的?_Javascript_Php_Pusher - Fatal编程技术网

Javascript 推手是私人的还是公共的?

Javascript 推手是私人的还是公共的?,javascript,php,pusher,Javascript,Php,Pusher,嗨,伙计们,我有以下来自Pusher的代码,我已经测试过了,看起来还可以使用,比如说 Pusher app.php中的Javascript 用户表 ---------------------------------------------- | ID | username | password | notify_channel | |--------------------------------------------| | 1 | userA | kjdiejdk

嗨,伙计们,我有以下来自Pusher的代码,我已经测试过了,看起来还可以使用,比如说

Pusher app.php中的Javascript

用户表

  ----------------------------------------------
  | 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

'
  '