onStatusChange method

void onStatusChange(
  1. String status
)

Event handler that receives a notification each time the LightstreamerClient status has changed.

The status changes may be originated either by custom actions (e.g. by calling LightstreamerClient.disconnect) or by internal actions. The normal cases are the following:

  • After issuing connect() when the current status is "DISCONNECTED*", the client will switch to "CONNECTING" first and to "CONNECTED:STREAM-SENSING" as soon as the pre-flight request receives its answer.
    As soon as the new session is established, it will switch to "CONNECTED:WS-STREAMING" if the environment permits WebSockets; otherwise it will switch to "CONNECTED:HTTP-STREAMING" if the environment permits streaming or to "CONNECTED:HTTP-POLLING" as a last resort.
  • On the other hand, after issuing connect when the status is already "CONNECTED:*" a switch to "CONNECTING" is usually not needed and the current session is kept.
  • After issuing [LightstreamerClient.disconnect], the status will switch to "DISCONNECTED".
  • In case of a server connection refusal, the status may switch from "CONNECTING" directly to "DISCONNECTED". After that, the [onServerError] event handler will be invoked.
Possible special cases are the following:
  • In case of Server unavailability during streaming, the status may switch from "CONNECTED:*-STREAMING" to "STALLED" (see [ConnectionOptions.setStalledTimeout]). If the unavailability ceases, the status will switch back to "CONNECTED:*-STREAMING"; otherwise, if the unavailability persists (see [ConnectionOptions.setReconnectTimeout]), the status will switch to "DISCONNECTED:TRYING-RECOVERY" and eventually to "CONNECTED:*-STREAMING".
  • In case the connection or the whole session is forcibly closed by the Server, the status may switch from "CONNECTED:*-STREAMING" or "CONNECTED:*-POLLING" directly to "DISCONNECTED". After that, the [onServerError] event handler will be invoked.
  • Depending on the setting in [ConnectionOptions.setSlowingEnabled], in case of slow update processing, the status may switch from "CONNECTED:WS-STREAMING" to "CONNECTED:WS-POLLING" or from "CONNECTED:HTTP-STREAMING" to "CONNECTED:HTTP-POLLING".
  • If the status is "CONNECTED:*-POLLING" and any problem during an intermediate poll occurs, the status may switch to "CONNECTING" and eventually to "CONNECTED:*-POLLING". The same may hold for the "CONNECTED:*-STREAMING" case, when a rebind is needed.
  • In case a forced transport was set through [ConnectionOptions.setForcedTransport], only the related final status or statuses are possible.
  • In case of connection problems, the status may switch from any value to "DISCONNECTED:WILL-RETRY" (see [ConnectionOptions.setRetryDelay]), then to "CONNECTING" and a new attempt will start. However, in most cases, the client will try to recover the current session; hence, the "DISCONNECTED:TRYING-RECOVERY" status will be entered and the recovery attempt will start.
  • In case of connection problems during a recovery attempt, the status may stay in "DISCONNECTED:TRYING-RECOVERY" for long time, while further attempts are made. If the recovery is no longer possible, the current session will be abandoned and the status will switch to "DISCONNECTED:WILL-RETRY" before the next attempts.
By setting a custom handler it is possible to perform actions related to connection and disconnection occurrences. Note that [LightstreamerClient.connect] and [LightstreamerClient.disconnect], as any other method, can be issued directly from within a handler.
  • status The new status. It can be one of the following values:
  • "CONNECTING" the client has started a connection attempt and is waiting for a Server answer.
  • "CONNECTED:STREAM-SENSING" the client received a first response from the server and is now evaluating if a streaming connection is fully functional.
  • "CONNECTED:WS-STREAMING" a streaming connection over WebSocket has been established.
  • "CONNECTED:HTTP-STREAMING" a streaming connection over HTTP has been established.
  • "CONNECTED:WS-POLLING" a polling connection over WebSocket has been started. Note that, unlike polling over HTTP, in this case only one connection is actually opened (see [ConnectionOptions.setSlowingEnabled]).
  • "CONNECTED:HTTP-POLLING" a polling connection over HTTP has been started.
  • "STALLED" a streaming session has been silent for a while, the status will eventually return to its previous CONNECTED:*-STREAMING status or will switch to "DISCONNECTED:WILL-RETRY" / "DISCONNECTED:TRYING-RECOVERY".
  • "DISCONNECTED:WILL-RETRY" a connection or connection attempt has been closed; a new attempt will be performed (possibly after a timeout).
  • "DISCONNECTED:TRYING-RECOVERY" a connection has been closed and the client has started a connection attempt and is waiting for a Server answer; if successful, the underlying session will be kept.
  • "DISCONNECTED" a connection or connection attempt has been closed. The client will not connect anymore until a new [LightstreamerClient.connect] call is issued.

Implementation

void onStatusChange(String status) {}