嗨,大家好,我有Pusher的以下代碼,我測試過,並且它好像用於例子。推送私人或公共?
的Javascript在推鋼app.php
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-> get_rows和echo到javascript,因此每個用戶都將擁有自己的唯一通道,因爲在javascript中指定的通道由服務器端腳本控制。
我的問題
1)我建立的活動流,我意識到即使沒有私營前綴(公共頻道),只要在PHP服務器端我在$小心推送器觸發器('頻道名稱','EVENT_NAME',$ data),並確保用戶is_logged_in(),即使我的所有頻道都是公開的,似乎也沒有問題。
使用公共頻道有什麼缺點,以及我什麼時候需要使用私人頻道?而在上面的例子中,只需添加私人前綴,我已經可以輕鬆收聽頻道了,但我不明白它有多安全。
因此,在繼續進一步使用推送器進行活動流並通知我的網站之前,任何過去的用戶都可以啓發我如何更好地做到這一點?
'
2)I想有其他用戶「跟隨」其他用戶,所以當用戶A和用戶B如下:用戶C,用戶A和用戶B每當用戶C增加會收到通知一個博客。因此,如果用戶A跟蹤1000個用戶,我的意思是我需要創建1000個不同的頻道?
我有上面的表,如果我有userA的東西我想發送給他的追隨者,我從上面的表中獲得追隨者,unserialise併發送給他們每個人。
那麼如何爲每個「關注」創建一個新頻道?我卡在這裏,我不明白算法,以更好地實現這一點。
'
3)在上述的JavaScript代碼的情況下,我不希望把它作爲內聯Javascript代碼,並希望把它放在分離的推動器 - client.js。我可以知道如何動態地將CHANNEL_NAME回顯到pusher-client.js,或者有其他方法嗎?