0

我已经成功使用 pusher 几个月了。我不会详细介绍解决方案的“推送”部分,因为它已经有效。当我尝试收听第二个应用程序时,我的问题在于听众方面。请注意,我说的是第二个应用程序,而不是同一个应用程序上的第二个频道。

这是我至少运行了 6 个月并且继续运行良好的内容,直到我尝试在 HEAD 部分的同一个 HTML/PHP 页面上添加第二个版本。

出于明显的原因,我已将密钥更改为某些信息。

如何在 Pusher 中添加指向第二个应用程序的第二个副本?

我担心的是,如果存在诸如通道之类的相同变量之类的东西,我会遇到问题。我曾尝试将频道重命名为频道 2 并将推送器重命名为推送器 2,但随后它停止工作..

<!-- Start Pusher Code -->
  <script src="https://d3dy5gmtp8yhk7.cloudfront.net/2.1/pusher.min.js" type="text/javascript"></script>
  <script type="text/javascript">

    var pusher = new Pusher('0000000000');
    var channel = pusher.subscribe('appname');

    channel.bind('channelname', function(data) {

    MyURL = 'http://www.google.com';

    newwindow=window.open(MyURL,data.cuid,'height=800,width=950,scrollbars=yes');

    });
  </script>
  <!-- End Pusher Code -->
4

1 回答 1

0

您可以使用自执行闭包:

( function() {
  // some code
} )();

以确保变量不会发生冲突。另外,请记住使用声明变量,var否则它们会泄漏到全局范围。

如果可能的话,我会<script>只包含一次 Pusher 标签。

<script src="https://d3dy5gmtp8yhk7.cloudfront.net/2.1/pusher.min.js"></script>
<!-- Start Pusher Code -->
<script>
( function() {
  var pusher = new Pusher('app_key_1');
  var channel = pusher.subscribe('appname');

  channel.bind('channelname', function(data) {

    var MyURL = 'http://www.google.com';

    var newwindow=window.open(MyURL,data.cuid,'height=800,width=950,scrollbars=yes');

  });
} )();
</script>
<!-- End Pusher Code -->

<!-- Start Pusher Code -->
<script>
( function() {
  var pusher = new Pusher('app_key_2');
  var channel = pusher.subscribe('appname');

  channel.bind('channelname', function(data) {

    var MyURL = 'http://www.google.com';

    var newwindow = window.open(MyURL,data.cuid,'height=800,width=950,scrollbars=yes');

  });
} )();
</script>
<!-- End Pusher Code -->

我使用了两个不同的应用程序密钥来确认您正在连接到两个不同的应用程序。

于 2013-07-17T20:26:16.317 回答