clientmanager

(plugins.clientmanager)

Overview

The clientmanager plugin facilitates communication and management of connected clients in Servoy. It supports broadcasting messages using createBroadcaster and retrieving connected clients with getConnectedClients. Administrators can send messages to clients via sendMessageToClient or sendMessageToAllClients and shut down clients using shutDownClient or shutDownAllClients.

Record locks can be managed with getLocks and releaseLocks, while isInMaintenanceMode checks server maintenance status. The plugin also enables advanced messaging through channels with getOrCreateBroadcaster, making it a powerful tool for client-server management.

Returned Types

Broadcaster,JSClientInformation,

Methods Summarized

Type
Name
Summary

Create a broadcast object giving it a (nick)name and on a specific channel, the callback is used for getting messages of other clients on that channel The function gets 3 arguments (nickName, message, channelName)

Returns the current client JSClientInformation object.

Returns an array of JSClientInformation elements describing the clients connected to the server.

Returns an array of JSClientInformation elements describing the clients connected to the server filtered by the a client info string.

Get client that locked the record from a specific datasource or null if record is not locked.

Get a dataset will all locks on the server.

Get a broadcast object giving it a (nick)name and on a specific channel var broadcaster = plugins.

Get a broadcast object giving it a (nick)name and on a specific channel, the callback is used for getting messages of other clients on that channel The function gets 3 arguments (nickName, message, channelName)

Returns true if the server is in maintenance mode, false otherwise.

void

Release all locks acquired by a client WARNING: use with care

void

Sends a message to all connected clients.

void

Sends a message to a specific client, identified by its clientId.

void

Shuts down all connected clients.

void

Shuts down a specific client, identified by its clientId.

void

Shuts down a specific client, identified by its clientId.

Methods Detailed

createBroadcaster(name, channelName, callback)

Create a broadcast object giving it a (nick)name and on a specific channel, the callback is used for getting messages of other clients on that channel The function gets 3 arguments (nickName, message, channelName)

Parameters

  • String name The nickname for this user on this channel

  • String channelName The channel name where should be listened to (and send messages to)

  • Function callback The callback when for incomming messages

Returns: Broadcaster BroadCaster

Sample

function callback(nickName, message, channelName) {
   application.output('message received from ' + nickName + ' on channel ' + channelName + ': ' + message)
}
var broadcaster = plugins.clientmanager.createBroadcaster("nickname", "mychatchannel", callback);
broadcaster.broadcastMessage("Hallo");

getClientInformation()

Returns the current client JSClientInformation object. Note this is snapshot information, client information will not get updated.

Returns: JSClientInformation

getConnectedClients()

Returns an array of JSClientInformation elements describing the clients connected to the server. Note this is snapshot information on connected clients, client information will not get updated.

Returns: Array JSClientInformation[]

Sample

//Returns an array of JSClientInformation elements describing the clients connected to the server.
var clients = plugins.clientmanager.getConnectedClients();
application.output("There are " + clients.length + " connected clients.");
for (var i = 0; i < clients.length; i++)
	application.output("Client has clientId '" + clients[i].getClientID() + "' and has connected from host '" + clients[i].getHostAddress() + "'.");

getConnectedClients(clientInfoFilter)

Returns an array of JSClientInformation elements describing the clients connected to the server filtered by the a client info string. This way you can ask for a specific set of clients that have a specific information added to there client information. Note this is snapshot information on connected clients, client information will not get updated.

Parameters

  • String clientInfoFilter The filter string

Returns: Array JSClientInformation[]

Sample

//Returns an array of JSClientInformation elements describing the clients connected to the server.
var clients = plugins.clientmanager.getConnectedClients();
application.output("There are " + clients.length + " connected clients.");
for (var i = 0; i < clients.length; i++)
	application.output("Client has clientId '" + clients[i].getClientID() + "' and has connected from host '" + clients[i].getHostAddress() + "'.");

getLockedByClient(datasource, pks)

Get client that locked the record from a specific datasource or null if record is not locked.

Parameters

Returns: JSClientInformation Client information

Sample

var client = plugins.clientmanager.getLockedByClient(foundset.getDataSource(),record.getPKs());

getLocks()

Get a dataset will all locks on the server. The dataset will have four columns: datasource, acquireDate, clientId, pkHash. Each row in the dataset will be a lock.

Returns: JSDataSet

Sample

var locks = plugins.clientmanager.getLocks();

getOrCreateBroadcaster(name, channelName)

Get a broadcast object giving it a (nick)name and on a specific channel var broadcaster = plugins.clientmanager.getBroadcaster("nickname", "mychatchannel"); broadcaster.broadcastMessage("Hallo");

Parameters

  • String name The nickname for this user on this channel

  • String channelName The channel name where should be listened to (and send messages to)

Returns: Broadcaster BroadCaster

getOrCreateBroadcaster(name, channelName, callback)

Get a broadcast object giving it a (nick)name and on a specific channel, the callback is used for getting messages of other clients on that channel The function gets 3 arguments (nickName, message, channelName)

Parameters

  • String name The nickname for this user on this channel

  • String channelName The channel name where should be listened to (and send messages to)

  • Function callback The callback when for incomming messages

Returns: Broadcaster BroadCaster

Sample

function callback(nickName, message, channelName) {
   application.output('message received from ' + nickName + ' on channel ' + channelName + ': ' + message)
}
var broadcaster = plugins.clientmanager.getBroadcaster("nickname", "mychatchannel", callback);
broadcaster.broadcastMessage("Hallo");

getServerBuildDate()

Returns: Date

isInMaintenanceMode()

Returns true if the server is in maintenance mode, false otherwise.

Returns: Boolean

Sample

//Returns true if the server is in maintenance mode, false otherwise.
if (plugins.clientmanager.isInMaintenanceMode())
	application.output("Server is in maintenance mode.");
else
	application.output("Server is not in maintenance mode.");

releaseLocks(clientId)

Release all locks acquired by a client

WARNING: use with care

Parameters

Returns: void

sendMessageToAllClients(message)

Sends a message to all connected clients.

Parameters

Returns: void

Sample

//Sends a message to all connected clients.
plugins.clientmanager.sendMessageToAllClients("Hello, all clients!");

sendMessageToClient(clientId, message)

Sends a message to a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method.

Parameters

Returns: void

Sample

//Sends a message to a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method.
var clients = plugins.clientmanager.getConnectedClients();
for (var i=0; i<clients.length; i++)
	plugins.clientmanager.sendMessageToClient(clients[i].getClientId(), "Hello, client " + clients[i].getClientID() + "!");

shutDownAllClients()

Shuts down all connected clients. This method returns immediately, it does not wait until the client shuts down.

Returns: void

Sample

//Shuts down all connected clients. This method returns immediately, it does not wait until the client shuts down.
plugins.clientmanager.shutDownAllClients();

shutDownClient(clientId)

Shuts down a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method. This method returns immediately, it does not wait until the client shuts down.

Parameters

Returns: void

Sample

//Shuts down a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method. This method returns immediately, it does not wait until the client shuts down.
var clients = plugins.clientmanager.getConnectedClients();
for (var i=0; i<clients.length; i++)
	plugins.clientmanager.shutDownClient(clients[i].getClientId());

shutDownClient(clientId, forceUnregister)

Shuts down a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method. This method returns immediately, it does not wait until the client shuts down. If forceUnregister is true, the client will unregister itself from server. Beware this should be used only if you are sure client is already closed (cannot connect anymore)

Parameters

  • String clientId ;

  • Boolean forceUnregister client is forced to unregister from server

Returns: void

Sample

//Shuts down a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method. This method returns immediately, it does not wait until the client shuts down.
var clients = plugins.clientmanager.getConnectedClients();
for (var i=0; i<clients.length; i++)
	plugins.clientmanager.shutDownClient(clients[i].getClientId());

Last updated