嗨大家我有以下来自Pusher的代码,我测试过,似乎可以使用,例如。
Pusher-app.php中的Javascript
var pusher = new Pusher('OMITTED_MY_API_KEY', {
cluster: 'ap1',
encrypted: true
});
var channel = pusher.subscribe('**private_username-id**');
channel.bind('my_event', function(data) {
alert(data.message);
});
</script>
推钢server.php
require('Pusher.php');
$options = array(
'cluster' => 'ap1',
'encrypted' => true
);
$pusher = new Pusher(
'OMMITED_API_KEY',
'OMMITED_API_KEY',
'OMMITED_API_KEY',
$options
);
$data['message'] = 'hello world';
$pusher->trigger('**private_user_name-id**', 'my_event', $data);
用户表
----------------------------------------------
| 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_username-id 的频道。
频道名称是来自数据库的$ wpdb-&gt; get_rows和 echo 到javascript,因此每个用户都有自己的唯一频道,因为javascript中指定的频道是由服务器端脚本控制的
我的问题
1)我正在构建一个活动流,我意识到即使没有 private - 前缀(公共通道),只要PHP中的服务器端我在$ pusher-trigger('< strong> CHANNEL NAME ',' EVENT_NAME ',$ data)并确保用户is_logged_in(),即使我的所有频道都公开也似乎没有问题。< / p>
使用公共频道有什么不利之处,我什么时候才能使用私人频道?在上面的例子中,通过添加私有前缀并且我已经很容易收听频道,我看不出它有多安全。
所以在我继续使用pusher进行活动流和我的网站通知之前,任何过去的用户都可以告诉我应该如何更好地做到这一点?
'
2)我希望其他用户“关注”其他用户,因此当用户A和用户B跟随用户C时,用户A和用户B将在用户C添加博客时收到通知。因此,如果用户A跟随1000个用户,我的意思是我需要创建1000个不同的频道吗?
我有上面的表格,如果我有来自userA的东西我想发送给他的粉丝,我从上表中获取粉丝,反序列化并发送给他们每个人。
那么如何为每个“跟随”创建一个新频道?我被困在这里,我不理解算法,以更好地实现这一点。
'
3)对于上面的javascript代码,我不希望将其作为内联Javascript代码,并希望将其放在一个单独的pusher-client.js中。我可以知道如何动态地回应CHANNEL_NAME到pusher-client.js还是有另一种方式?
答案 0 :(得分:1)
使用公共频道有什么不利之处,我什么时候做 实际上必须使用私人频道?在上面的例子中,通过 只需添加私有前缀,我已经很容易听 通道,我看不出它有多安全。
使用公共频道的缺点是,任何人都可以订阅频道,并在该频道上监听事件。想想私人消息服务,如果用户A在频道C中与用户B聊天,而用户X订阅频道C,则X可以查看A和B之间的所有消息。
私有通道具有身份验证机制,因此通过在authenticate方法上实现逻辑代码,它可以拒绝未经授权的订阅。
那么如何为每个“跟随”创建一个新频道?我被困在这里 并且我不理解算法以更好地实现它。
A之后是F1,F2,F3 频道名称应为:follow-A 然后当A发布博客时,可以通知F1,F2,F3。