Class DeepstreamClient
The main entry point for a DeepstreamClient. Clients can be created directly using the constructor or via DeepstreamFactory.getClient()
, DeepstreamFactory.getClient(url)
or
DeepstreamFactory.getClient(url, options)
to create a client and keep it as a singleton for future references.
Fields
record
Allows access to concepts related to deepstream’s realtime datastore, such as:
- get a reference to records via
record.getRecord(recordName)
- get a reference to list via
record.getList(listName)
- retrieve a snapshot of the record data via
record.snapshot(recordName)
event
The entry point for events, such as:
- subscribing to events via
event.subscribe(eventName, listener)
- sending data on topics via
event.emit(eventName)
- listening for topic subscriptions via
event.listen(name,listener)
rpc
The entry point for RPCs, deepstream’s request-response mechanism:
- requesting via
RpcHandler.make(name,data)
- providing via
RpcHandler.provide(name,listener)
Constructors
DeepstreamClient(String url) throws URISyntaxException
Argument | Type | Description |
---|---|---|
options | url | The url to connect to |
Creates a client instance using the default properties and initialises the connection to deepstream. The connection will be kept in a quarantine state and won’t be fully usable until DeepstreamClient.login()
is called.
DeepstreamClient client = new DeepstreamClient("ws://localhost:6020");
DeepstreamClient(String url, Properties options) throws URISyntaxException,
Argument | Type | Description |
---|---|---|
options | url | The url to connect to |
properties | Properties | The properties to configure the client with |
Creates a client instance, merging the default options with the passed in configuration and initialises the connection to deepstream. The connection will be kept in a quarantine state and won’t be fully usable until DeepstreamClient.login()
is called.
Properties options = new Properties();
properties.setProperty(ConfigOptions.RPC_RESPONSE_TIMEOUT.toString(), "10");
DeepstreamClient client = new DeepstreamClient("ws://localhost:6020", options);
Methods
void setRuntimeErrorHandler(DeepstreamRuntimeErrorHandler handler)
Argument | Type | Description |
---|---|---|
handler | DeepstreamRuntimeErrorHandler | The listener to set |
Adds a DeepstreamRuntimeErrorHandler
that will catch all RuntimeErrors such as AckTimeouts and allow the user to gracefully handle them.
client.setRuntimeErrorHandler(new DeepstreamRuntimeErrorHandler() {
@Override
public void onException(Topic topic, Event event, String errorMessage) {
// handle error
}
});
LoginResult login()
Authenticates the client against the platform with an empty authentication object and returns a LoginResult. To learn more about how authentication works, please have a look at the Security Overview.
DeepstreamClient client = new DeepstreamClient("ws://localhost:6020");
LoginResult result = client.login();
LoginResult login(JsonElement authParams)
Argument | Type | Description |
---|---|---|
authParams | JsonElement | JSON.serializable authentication data |
Authenticates the client against the platform with the given credentials and returns a LoginResult. To learn more about how authentication works, please have a look at the Security Overview.
DeepstreamClient client = new DeepstreamClient("ws://localhost:6020");
JsonObject credentials = new JsonObject();
credentials.addProperty("email", "user@example.com");
credentials.addProperty("email", "sesame");
LoginResult result = client.login(credentials);
DeepstreamClient close()
Ends the connection to the platform.
client.addConnectionChangeListener(new ConnectionStateListener() {
@Override
public void connectionStateChanged(ConnectionState connectionState) {
// will be CLOSED once the connection is successfully closed
}
});
client.close();
DeepstreamClient addConnectionChangeListener (ConnectionStateListener listener)
Argument | Type | Description |
---|---|---|
connectionStateListener | ConnectionStateListener | The listener to add |
Add a listener that can be notified via ConnectionStateListener.connectionStateChanged(state)
whenever the ConnectionState changes. A list of possible connection states is available here
client.addConnectionChangeListener(new ConnectionStateListener() {
@Override
public void connectionStateChanged(ConnectionState connectionState) {
// handle change
}
});
DeepstreamClient removeConnectionChangeListener(ConnectionStateListener listener
Argument | Type | Description |
---|---|---|
connectionStateListener | ConnectionStateListener | The listener to remove |
Removes a ConnectionStateListener added via DeepstreamClient.addConnectionChangeListener()
client.removeConnectionChangeListener(connectionStateChangedListener);
String getUid()
Returns a random id. The first block of characters is a timestamp, in order to allow databases to optimize for semi- sequentuel numberings.
client.getUid();