javascript - 动态页面刷新 JavaScript/PHP 或 'Pusher.com'

标签 javascript php jquery web pusher

我正在寻找一种解决方案,以便能够动态地强制刷新我的网页以供所有当前查看者使用。如果这是通过 php 完成的,那将是最简单的,但是我愿意接受建议。

我做了一些研究并找到了一个可能的解决方案 (pusher.com),但是我不确定如何执行它。下面是我的代码:

我网页上的 JavaScript 添加到 document.ready jQuery':

var pusher = new Pusher('xxx');
var refreshChannel = pusher.subscribe('refreshing');
refreshChannel.bind('refresh-event', function() {
location.reload(true);
});

这是他们官方文档中我的 php 代码:

<?php
 require('Pusher.php');
 $options = array(
 'cluster' => 'eu',
 'encrypted' => true
 );
 $pusher = new Pusher(
'xxx',
'xxx',
'xxx',
 $options);

 $data['message'] = 'hello world';
 $pusher->trigger('refresh-event', 'refresh', $data);

?>

我知道如何发送如上所示的消息,但我不知道如何启用刷新代码。有没有人以前使用过这个 sdk 并且知道如何使用?

或者

有人知道有关如何完成此任务的任何库或解决方案吗?同样,我要做的就是在需要时为所有当前查看者动态刷新我的网页。

最佳答案

你的回调函数是 refreshChannel.bind(...) 的第二个参数将在 'refresh-event' 时运行在 channel 'refreshing' 上收到. $data在您的 PHP 中也被传递给该函数,因此您可以随事件发送信息。

执行此操作的代码几乎准确无误,但您似乎忘记了在 javascript 中设置集群,因此无法成功连接。如果您的应用程序在 'eu' 上当您尝试连接时,您需要这样说:

var pusher = new Pusher('xxx', {
  cluster: 'eu',
  encrypted: true
});

你应该得到 "Could not find app by key xxx. Perhaps you're connecting to the wrong cluster."当您尝试加载页面时,javascript 控制台中出现错误。

编辑:仔细检查您的 channel 名称和事件在您的触发调用中也是错误的。这是

 $pusher->trigger('channel-name', 'event', $data);

编辑 2:同样在您的 javascript 中,您正在调用 channel 'refreshing'在你的 php 中你称它为 'refresh' .这些必须相同。

关于javascript - 动态页面刷新 JavaScript/PHP 或 'Pusher.com',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41137256/

相关文章:

javascript - 在 onclick 事件中设置 css 属性

javascript - 对所有页面使用相同的 Handlebars 模板

javascript - 如何保证多个 promise 的解决顺序?

javascript - 如何使用 html 和 jquery 在 MAP 标签上放置标记?

php - Google Analytic API insufficientPermissions 403错误

php - 用户身份验证-安全风险通过 HTTP 传递 session cookie?

javascript - 排除项目及其内容元素

javascript - Highcharts - 显示 noData 叠加层和 x 轴标签

javascript - 有没有办法简化这个 css?

php - 签名板: Capturing more than one signature