Removing Listeners¶
To stop receiving messages listeners can be removed using the following API:
Removing a specific listener for a selector¶
The listener object must be the same as the one added with the method which adds the listener:
Channel *channel = [Backendless.shared.messaging subscribe];
// add listener
RTSubscription *subscription = [channel addMessageListenerWithResponseHandler:^(PublishMessageInfo *info) { } errorHandler:^(Fault *fault) { }];
// remove listener
[subscription stop];
let channel = Backendless.shared.messaging.subscribe()
// add listener
let subscription = channel.addMessageListener(responseHandler: { info in }, errorHandler: { fault in })
// remove listener
subscription?.stop()
Removing all message listeners for a selector¶
- (void)removeMessageListenersWithSelector:(NSString * _Nonnull)selector;
func removeMessageListeners(selector: String)
Remove all listeners for a channel¶
- (void)removeMessageListeners;
func removeMessageListeners
Example¶
The following example declares a messaging listener, adds and then removes it. The example as shown does not provide any subscription functionality as the listener is removed right after it is added, however, it clearly demonstrates how a listener can be removed from a channel:
// subscribe to channel
Channel *channel = [Backendless.shared.messaging subscribe];
// add listener
RTSubscription *subscription = [channel addMessageListenerWithResponseHandler:^(PublishMessageInfo *info) { } errorHandler:^(Fault *fault) { }];
// remove listener
[subscription stop];
// subscribe to a channel
let channel = Backendless.shared.messaging.subscribe()
// add listener
let subscription = channel.addMessageListener(responseHandler: { info in }, errorHandler: { fault in })
// remove listener
subscription?.stop()