The DeskThing-App Server is an essential module for setting up your DeskThing App. It provides the server-side communication layer for your app.
Deskthing-Server is intended to work alongside DeskThing-Client to allow communication back-and-forth with the client. DeskThing-Server holds all the information and functions the server/ side of your app needs.
To install the server, use the following command:
npm install deskthing-serverTo use the DeskThing server in your application, you need to import it and get an instance:
import DeskThing from 'deskthing-server';
const deskThing = DeskThing.getInstance();You can send messages to the client using the sendDataToClient method. For example, to send a JSON object to the client:
deskThing.sendDataToClient({type: 'message', payload: 'Hello, Client!'});To handle incoming messages from the client, you need to set up event listeners:
deskThing.on('data', (data) => {
console.log('Received data:', data);
});Here is a more complete example demonstrating two-way communication between the server and client:
import DeskThing from 'deskthing-server';
const deskThing = DeskThing.getInstance();
// Sending a message to the client
deskThing.sendDataToClient({ type: 'message', payload: 'Hello, Client!'});
// Listening for a response from the client
deskThing.on('data', (data) => {
console.log('Received data from client:', data.payload); // will print "someResponse" in this example
});
deskThing.on('set', (data) => {
console.log('Received data from client:', data.payload.key); // will print 'value' in this example
});import DeskThing from 'deskthing-client';
const deskThing = DeskThing.getInstance();
// Sending a message to the server
deskThing.sendMessageToServer({ type: 'set', payload: { key: 'value' } });
// Listening for a response from the server
deskThing.on('message', (data) => {
console.log('Received response from server:', data); // logs 'Hello, Client!'
deskThing.sendMessageToServer({type: 'data', payload: 'someResponse'})
});You can route requests to another app running on the server:
deskThing.sendDataToOtherApp('appId', { type: 'set', payload: { key: 'value' } });To fetch persistent data from the server:
const data = await deskThing.getData();
console.log('Fetched data:', data);To manage settings:
const settings = await deskThing.getSettings();
console.log('Current settings:', settings);To add a background task:
const taskLoop = () => {
// Your background task code
return true;
};
deskThing.addBackgroundTaskLoop(taskLoop);You can find more information in https://github.com/itsriprod/deskthing-app-client