0

我的问题与 Faye 的断开连接事件有关。我可以很容易地从 java 脚本订阅一个频道,我也可以处理/meta/subscribeand /meta/connect。但我想要一些东西,比如我的 html.erb 文件中的按钮,并使用它来断开或取消订阅频道。我想知道如何启动一个 java 脚本来断开与频道的连接,就像我们在订阅频道时所做的那样,如下所示:

$(function() {
  var faye = new Faye.Client('http://localhost:9292/faye');
    faye.subscribe("/messages/new", function(data) {
     eval(data);
    });
});

请给我一个控制器代码或java脚本代码。谢谢

4

1 回答 1

2

subscribe() 方法返回一个 Subscription 对象,如果您想从频道中删除该侦听器,可以取消该对象。

因此,您可以做的是将对象存储在另一个名为的变量中,subscription然后将 subscribe 方法返回的订阅对象存储在其中。

var subscription;
$(function() {
  var faye = new Faye.Client('http://localhost:9292/faye');
  subscription = faye.subscribe("/messages/new", function(data) {
    eval(data);
  });
});

$('#button').click(function() {
  subscription.cancel();
});

因此,在这种情况下,当您单击具有 id 的按钮时,button它将取消订阅。我建议在取消之前检查您是否已经订阅。

订阅/取消来源:http: //faye.jcoglan.com/browser/subscribing.html

于 2013-09-11T02:01:29.363 回答