要创建我运行的订阅,请执行以下操作:
App.room = App.cable.subscriptions.create({
channel: "RoomChannel",
roomId: roomId
}, {
connected: function() {},
disconnected: function() {},
received: function(data) {
return $('#messages').append(data['message']);
},
speak: function(message, roomId) {
return this.perform('speak', {
message: message,
roomId: roomId
});
}
});但是,因为我希望客户端永远不会订阅多个频道,所以每次在此之前我可以运行什么命令来删除客户端拥有的所有订阅?
我试着做一些超级老套的事情,比如:
App.cable.subscriptions['subscriptions'] = [App.cable.subscriptions['subscriptions'][1, 0]]但我确信它不起作用,因为订阅/取消订阅中还有许多其他组件。
App.cable.subscriptions.remove需要一个订阅参数,但我应该传入什么?
谢谢!
发布于 2017-02-11 02:49:26
回答有点晚,但考虑到您已经声明
App.room = App.cable.subscriptions.create(...)
移除,类似于
if (App.room) App.cable.subscriptions.remove(App.room);
应该足够了。
发布于 2016-05-02 13:43:51
在每次创建订阅之前运行此命令将确保每个客户端最多只能有一个订阅。
if (App.cable.subscriptions['subscriptions'].length > 1) {
App.cable.subscriptions.remove(App.cable.subscriptions['subscriptions'][1])
};发布于 2016-09-13 02:27:44
看起来您需要在创建时创建一个对您的订阅的引用
let mySubscription = App.cable.subscriptions.create({
channel: "MyChannel"
},
{
connected: () => { console.log('connected') },
disconnected: () => {},
received: (data) => {}
});然后像这样移除它
App.cable.subscriptions.remove(mySubscription)https://stackoverflow.com/questions/36964152
复制相似问题