Я пытался вызвать события, используя Pusher PHP Server но не в состоянии это сделать. Я пробовал несколько решений, таких как i-e, включающих расширение cURL в моей серверной среде, но все еще безрезультатно.
Я успешно смог инициировать события с помощью создателя событий, предоставленного Pusher Debug Console. Я что-то пропустил?
Фрагмент кода на стороне клиента (канал подписки & слушаю события)
<head>
<title>Pusher Test</title>
<script src="//js.pusher.com/2.2/pusher.min.js" type="text/javascript"></script>
<script type="text/javascript">
Pusher.log = function(message) {
if (window.console && window.console.log) {
window.console.log(message);
}
};
var pusher = new Pusher('key');
var channel = pusher.subscribe('test_channel');
channel.bind('my_event', function(data) {
alert(data.message);
});
</script>
</head>
Фрагмент кода на стороне сервера (не работает)
require('Pusher.php');
$app_id = 'xxx';
$app_key = 'xxx';
$app_secret = 'xxx';
$pusher = new Pusher($app_key, $app_secret, $app_id);
$data['message'] = 'hello world';
$pusher->trigger('test_channel', 'my_event', $data);
Поскольку вы говорите, что создатель событий работает, я предполагаю, что функциональность клиента в порядке, и проблема в следующем:
Убедитесь, что отчеты об ошибках включены и выполните код:
<?php
error_reporting(E_ALL);
require('Pusher.php');
$app_id = 'xxx';
$app_key = 'xxx';
$app_secret = 'xxx';
$pusher = new Pusher($app_key, $app_secret, $app_id);
$data['message'] = 'hello world';
$pusher->trigger('test_channel', 'my_event', $data);
Каков результат запуска вышеуказанного кода?
Если с кодом все в порядке, я бы посоветовал вам взглянуть на отладка и ведение журнала Информация, предоставленная библиотекой:
https://github.com/pusher/pusher-php-server#debugging
<?php
error_reporting(E_ALL);
require('Pusher.php');
$app_id = 'xxx';
$app_key = 'xxx';
$app_secret = 'xxx';
class MyLogger {
public function log( $msg ) {
print_r( $msg . "<br />" );
}
}
$pusher = new Pusher($app_key, $app_secret, $app_id);
$logger = new MyLogger();
$pusher->set_logger( $logger );
$data['message'] = 'hello world';
$result = $pusher->trigger('test_channel', 'my_event', $data);
$logger->log( "---- My Result ---" );
$logger->log( $result );
Каковы результаты выполнения этого кода? Это должно быть что-то вроде:
Pusher: -> триггер полученной строки канала «test_channel». преобразование
к массиву. Толкатель: curl_init (
http://api.pusherapp.com:80/apps/97748/events?auth_key=XXX&auth_signature = XXX&auth_timestamp = 1419197439&auth_version = 1,0&body_md5 = XXX ) Толкатель: триггер POST:
{ «Имя»: «my_event», «данные»: «{\» сообщение \ «: \» Привет
world \ «}», «channel»: [«test_channel»]} Pusher: exec_curl response:
Array ([body] => {} [status] => 200)
—- мой результат — 1
Вышеуказанные шаги должны предоставить вам все необходимое, чтобы понять, почему что-то не работает.
Других решений пока нет …