Pusher returns 没有 presenceAuth 的数据

Pusher returns no data for presenceAuth

我是 Pusher 的新手,我正在尝试创建一个 "who's online using it" 我仔细按照说明操作,但我遇到了数据错误..

我错过了什么吗?推手 returns 没有数据 ..

JS:

var socket = new Pusher('MYKEY', {authEndpoint:'php/pusher/auth.php'});

var channel_name = 'presence_channel';
var pchannel = socket.subscribe(channel_name);

pchannel.bind('pusher:subscription_succeeded', function(members){
    console.log(members);
    $.each(members, function(members){
        console.log(members.info.username);
    });
});

pchannel.bind('pusher:member_added', function(member){
    //add_user(member.info.username);
    console.log(member);
});


Pusher.log = function(message) {
  if (window.console && window.console.log) {
    window.console.log(message);
  }
};

PHP

if(session_id() == ''){ session_start(); }

header('Content-Type: application/json');
require_once 'Pusher.php';
require_once 'config.php';

if(isset($_SESSION['uid']))
{
    $pusher = new Pusher($app_key, $app_secret, $app_id);
    $presence_data = array('username' => $_SESSION['cname']);
    $uid = $_SESSION['uid'];

    echo $pusher->presence_auth($_POST['channel_name'], $_POST['socket_id'], $uid, $presence_data);
    exit();
}

在 JS 脚本中,在 subscription_succeeded 之后我登录了成员..并得到了空对象..我是不是遗漏了什么?请帮忙谢谢..

本例中的频道名称好像是presence_channel。存在频道需要有一个 presence- 前缀。所以只需将频道名称中的下划线替换为连字符即可。