Created
February 14, 2017 00:33
-
-
Save marceloinacio/20754a9d6156f1a8d9db45b14fca2c95 to your computer and use it in GitHub Desktop.
addListener
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pubNub.addListener(new SubscribeCallback() { | |
@Override | |
public void status(PubNub pubnub, PNStatus status) { | |
if (status.getOperation() != null) { | |
switch (status.getOperation()) { | |
// let's combine unsubscribe and subscribe handling for ease of use | |
case PNSubscribeOperation: | |
case PNUnsubscribeOperation: | |
// note: subscribe statuses never have traditional | |
// errors, they just have categories to represent the | |
// different issues or successes that occur as part of subscribe | |
switch (status.getCategory()) { | |
case PNConnectedCategory: | |
// this is expected for a subscribe, this means there is no error or issue whatsoever | |
case PNReconnectedCategory: | |
// this usually occurs if subscribe temporarily fails but reconnects. This means | |
// there was an error but there is no longer any issue | |
case PNDisconnectedCategory: | |
// this is the expected category for an unsubscribe. This means there | |
// was no error in unsubscribing from everything | |
case PNUnexpectedDisconnectCategory: | |
// this is usually an issue with the internet connection, this is an error, handle appropriately | |
case PNAccessDeniedCategory: | |
// this means that PAM does allow this client to subscribe to this | |
// channel and channel group configuration. This is another explicit error | |
default: | |
// More errors can be directly specified by creating explicit cases for other | |
// error categories of `PNStatusCategory` such as `PNTimeoutCategory` or `PNMalformedFilterExpressionCategory` or `PNDecryptionErrorCategory` | |
} | |
case PNHeartbeatOperation: | |
// heartbeat operations can in fact have errors, so it is important to check first for an error. | |
// For more information on how to configure heartbeat notifications through the status | |
// PNObjectEventListener callback, consult <link to the PNCONFIGURATION heartbeart config> | |
if (status.isError()) { | |
// There was an error with the heartbeat operation, handle here | |
} else { | |
// heartbeat operation was successful | |
} | |
default: { | |
// Encountered unknown status type | |
} | |
} | |
} else { | |
// After a reconnection see status.getCategory() | |
} | |
} | |
@Override | |
public void message(PubNub pubnub, PNMessageResult message) { | |
} | |
@Override | |
public void presence(PubNub pubnub, PNPresenceEventResult presence) { | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment