PHP Pusher事件触发无法正常工作

时间:2016-06-19 13:44:16

标签: javascript php websocket pusher

说到WebSockets,我是新手,最近我遇到了Pusher。我想把它整合到我的网站上。我试图通过Pusher.php文件触发事件,这是我的代码:

$pusherArray['success'] = true;
        $pusher = new Pusher( $PUSHER_APP_KEY, $PUSHER_APP_SECRET, $PUSHER_APP_ID );
        class MyLogger {
          public function log( $msg ) {
            print_r( $msg . "\n" );
          }
        }

        $pusher->set_logger( new MyLogger() );
        $pusher->trigger('8307851079', 'logout', $pusherArray);
        $info = $pusher->get_channel_info("$clef_id");
        $channel_occupied = $info->occupied;
        var_dump($channel_occupied); 

然后这就是我得到的结果:

Pusher: curl_init( http://api.pusherapp.com:80/apps/217851/events?auth_key=MY_KEY&auth_signature=SIGNATURE&auth_timestamp=1466342695&auth_version=1.0&body_md5=41b74623d1e5f479b466093805ff36de )
Pusher: trigger POST: {"name":"logout","data":"{\"success\":true}","channels":8307851079}
Pusher: exec_curl response: Array
(
    [body] => Expected channels parameter to be an array

    [status] => 400
)

Pusher: curl_init( http://api.pusherapp.com:80/apps/217851/channels/8307851079?auth_key=MY_KEY&auth_signature=SIGNATURE&auth_timestamp=1466342696&auth_version=1.0 )
Pusher: exec_curl response: Array
(
    [body] => 404 NOT FOUND

    [status] => 404
)

NULL

事件未被触发!需要一些帮助!

1 个答案:

答案 0 :(得分:1)

我最终得到了它。发生了什么是视频通道信息方法导致错误。我没有正确的语法。

正如Rob所指出的,触发函数的第一个参数要求它是一个数组。我改变了,让脚本工作。这是简短的代码:

    $pusherArray['success'] = true; 
$pusher = new Pusher( $PUSHER_APP_KEY, $PUSHER_APP_SECRET, $PUSHER_APP_ID );
class MyLogger { public function log( $msg ) { print_r( $msg . "\n" ); } } 
$pusher->set_logger( new MyLogger() ); 
$pusher->trigger(['8307851079'], 'logout', $pusherArray);

我只是删除了视频频道信息,因为我并不真正需要该功能。获得200 OK状态代码,我的脚本能够提供

  

"成功":真实

给Pusher服务的消息。