推送器 PHP 服务器不工作
Pusher PHP Server not working
我一直在尝试使用Pusher PHP服务器触发事件,但无法这样做。我已经尝试了几种解决方案,例如在我的服务器环境中启用 cURL 扩展的 i-e,但仍然没有结果。我已经能够使用推送调试控制台提供的事件创建器成功触发事件。我错过了什么吗?
客户端代码片段(订阅频道和侦听事件(
<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代码
- 通过 Pusher PHP 库与 Web API 的交互。
检查 PHP 代码
确保错误报告已打开并执行代码:
<?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);
运行上述代码的输出是什么?
Pusher PHP 库中的调试和日志记录
如果代码一切正常,那么我建议您查看库提供的调试和日志记录信息: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 );
运行此代码的输出是什么?它应该是这样的:
推杆:->触发接收的字符串通道"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 ( 推杆:触发开机自检: {"name":"my_event","data":"{''"message''":''"hello world''"}","channels":["test_channel"]} 推送器: exec_curl响应: 数组 ( [正文] => {} [状态] => 200 ( ---- 我的结果--- 1
上述步骤应该为您提供所需的一切,以便找出事情不起作用的原因。
- Ember.js:liverload服务器不工作
- datatables+lengthMenu+All+服务器端处理+不工作
- 警报,提示..在本地服务器(Tomcat)上不工作
- 引导程序's的javascript在本地工作,但在部署到服务器时不能工作
- 背景's/JavaScript在本地显示/工作,而不是在服务器上
- HTML5视频无法在chrome上工作,在服务器上托管后的IE,mov文件中的视频(quicktime格式)
- web工作程序中不同的服务器请求行为
- 数据表 + 列搜索 + 整体搜索协同工作 + 服务器端处理
- 使用HTML和任何服务器端语言(PHP,.net,ruby)制作的网站是否可以在每个具有浏览器的设备上工作
- 代码在jsfiddle中工作,但在本地服务器中不起作用
- WebSocket 应用程序在部署在 Tomcat8 服务器上时无法正常工作
- Node http-proxy-middleware 不能与本地服务器一起工作
- 当通过Node.js服务器访问时,Javascript文件在Chrome上工作,但从文件夹打开时不工作
- 服务器重新启动后javascript不工作
- Jquery Post方法在本地工作,但在服务器上不工作
- CSS和Javascript可以在内部服务器上工作,但不能在外部工作
- 为什么我的下拉菜单在本地服务器上可以工作,但当我推到heroku时却不能
- HTML5视频在本地正常工作,但不在托管服务器上
- Javascript在本地工作,不会在Web服务器上工作
- Facebook Api好友列表不工作服务器