2016-06-19 12 views
1

Я новичок, когда дело доходит до WebSockets, и я недавно наткнулся на Pusher. Я хотел интегрировать его на своем веб-сайте. Я пытаюсь вызвать событие через файл Pusher.php, и вот мой код:PHP Pusher Событие Triggering not working

$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

Вы проверили [phpdoc] (https://github.com/pusher/pusher-http-php/blob/master/lib/Pusher.php#L402)? Первым аргументом, заданным для метода триггера, должен быть массив. Вы передаете строку. –

+0

@RobApodace не для '$ info = $ pusher-> get_channel_info (" $ clef_id ");' но сам триггер не работает! –

+0

@RobApodaca Я пробовал это, и триггер возвратил код состояния 200! Но после этого у меня все еще появилась ошибка 404. И я до сих пор не вижу свое событие в журнале пушки Debug Console. В то время как все соединения и каналы показаны! –

ответ

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 код статуса и мой сценарий был в состоянии поставить «успех»

: истинный

сообщение в службу толкателя.