Я делаю личное чат-приложение с помощью private_pub, мой вопрос заключается в том, как отказаться от подписки на канал с помощью private_pub?Private_pub: как отказаться от подписки на канал
спасибо за вашу помощь
Я делаю личное чат-приложение с помощью private_pub, мой вопрос заключается в том, как отказаться от подписки на канал с помощью private_pub?Private_pub: как отказаться от подписки на канал
спасибо за вашу помощь
, если вы используете pjax или АЯКС много на своем сайте и на странице загружаемую с помощью AJAX вы имеете private_pub подписаться методом там вы увидите, что Он много раз подписавшись после поиска много о том, что я нашел эти вилы от privat_pub файла JavaScript, который решил эти проблемы
var PrivatePub = (function (doc) {
var self = {
connecting: false,
fayeClient: null,
fayeCallbacks: [],
subscriptions: {},
subscriptionCallbacks: {},
faye: function(callback) {
if (self.fayeClient) {
callback(self.fayeClient);
} else {
self.fayeCallbacks.push(callback);
if (self.subscriptions.server && !self.connecting) {
self.connecting = true;
if (typeof Faye === 'undefined') {
var script = doc.createElement("script");
script.type = "text/javascript";
script.src = self.subscriptions.server + ".js";
script.onload = self.connectToFaye;
doc.documentElement.appendChild(script);
} else {
self.connectToFaye();
}
}
}
},
connectToFaye: function() {
self.fayeClient = new Faye.Client(self.subscriptions.server);
self.fayeClient.addExtension(self.fayeExtension);
for (var i=0; i < self.fayeCallbacks.length; i++) {
self.fayeCallbacks[i](self.fayeClient);
};
},
fayeExtension: {
outgoing: function(message, callback) {
if (message.channel == "/meta/subscribe") {
// Attach the signature and timestamp to subscription messages
var subscription = self.subscriptions[message.subscription];
if (!message.ext) message.ext = {};
message.ext.private_pub_signature = subscription.signature;
message.ext.private_pub_timestamp = subscription.timestamp;
}
callback(message);
}
},
sign: function(options) {
if (!self.subscriptions.server) {
self.subscriptions.server = options.server;
}
if (!self.subscriptions[options.channel]) {
self.subscriptions[options.channel] = options;
self.faye(function(faye) {
faye.subscribe(options.channel, self.handleResponse);
});
}
},
handleResponse: function(message) {
if (message.eval) {
eval(message.eval);
}
if (callback = self.subscriptionCallbacks[message.channel]) {
callback(message.data, message.channel);
}
},
subscribe: function(channel, callback) {
self.subscriptionCallbacks[channel] = callback;
}
};
return self;
}(document));
попробовать.
Можете ли вы показать мне свой код о том, как вы подписались? я не знаю о private_pub, но я знаю фэй. –
Я копаю его проект в github, но, к сожалению, он не включил метод отмены подписки. –
да .. казалось бы, ... не отписаться! –