【问题标题】:Unsubscribe Pusher channel退订推送频道
【发布时间】:2014-11-30 15:44:39
【问题描述】:

我不熟悉将Pusher 与我的Rails 应用程序一起使用。 一切正常,我现在可以订阅频道并接收JSON 消息。

但我想制作一个按钮,我可以在其中取消订阅特定频道。

我试过了

<button onclick="unsubscribe_channcel('test_channel')">Unsubscribe</button>

<script>
  function unsubscribe_channcel(channelName) {
  var pusher = new Pusher('APP KEY');
  pusher.unsubscribe(channelName);
};
</script>

但它不起作用。如果我在按下按钮时查看调试控制台,所有发生的事情就是它建立了一个新连接,并且我不断收到来自“test_channel”的消息。

【问题讨论】:

    标签: javascript ruby-on-rails pusher


    【解决方案1】:

    您需要在您订阅频道的 Pusher 对象的同一实例上取消订阅频道,例如

    <button onclick="subscribe_channel('test_channel')">Subscribe</button>
    <button onclick="unsubscribe_channel('test_channel')">Unsubscribe</button>
    
    <script src="http://js.pusher.com/2.2/pusher.min.js"></script>
    <script>
      Pusher.log = function(msg){
        console.log(msg);
      };
    
      var YOUR_APP_KEY = "1afb3f8f61eb29da86df";
      var pusher = new Pusher(YOUR_APP_KEY);
    
      function subscribe_channel( channelName ) {
        pusher.subscribe( channelName );
      }
    
      function unsubscribe_channel(channelName) {
        pusher.unsubscribe(channelName);
      }
    </script>
    

    您可以在此处找到此代码的工作示例:http://jsbin.com/camul/1/edit?html,console,output

    【讨论】:

    • 感谢您的回答。但我得到这个错误。 “Uncaught TypeError: Cannot read property 'unsubscribe' of undefined”根据这个,是否可以使用取消订阅。但它似乎不像它的工作。 pusher.com/docs/client_api_guide/client_public_channels
    • 我更新了代码示例以替换几个小错误。我还添加了一个指向代码工作示例的链接。 pusher.unsubscribe 肯定存在并且按照文档中的描述工作。
    • 你太棒了!非常感谢。
    • "Cannot read property 'unsubscribe' of undefined":channelName 无效时出现此错误。
    猜你喜欢
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    相关资源
    最近更新 更多