in content/lib/paho-mqtt.js [920:942]
ClientImpl.prototype.unsubscribe = function(filter, unsubscribeOptions) {
this._trace("Client.unsubscribe", filter, unsubscribeOptions);
if (!this.connected)
throw new Error(format(ERROR.INVALID_STATE, ["not connected"]));
var wireMessage = new WireMessage(MESSAGE_TYPE.UNSUBSCRIBE);
wireMessage.topics = [filter];
if (unsubscribeOptions.onSuccess) {
wireMessage.callback = function() {unsubscribeOptions.onSuccess({invocationContext:unsubscribeOptions.invocationContext});};
}
if (unsubscribeOptions.timeout) {
wireMessage.timeOut = new Timeout(this, window, unsubscribeOptions.timeout, unsubscribeOptions.onFailure,
[{invocationContext:unsubscribeOptions.invocationContext,
errorCode:ERROR.UNSUBSCRIBE_TIMEOUT.code,
errorMessage:format(ERROR.UNSUBSCRIBE_TIMEOUT)}]);
}
// All unsubscribes return a SUBACK.
this._requires_ack(wireMessage);
this._schedule_message(wireMessage);
};