deskthing-server
v0.10.3
Published
The Deskthing connector for the server apps
Downloads
553
Maintainers
Readme
DeskThing Server NPM
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.
Installation
To install the server, use the following command:
npm install deskthing-server
Usage
Initializing the DeskThing Server
To 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();
Sending Messages to the Client
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!'});
Receiving Messages from the Client
To handle incoming messages from the client, you need to set up event listeners:
deskThing.on('data', (data) => {
console.log('Received data:', data);
});
Example: Two-Way Communication
Here is a more complete example demonstrating two-way communication between the server and client:
Server Side
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
});
Client Side
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'})
});
Additional Features
Sending Data to Other Apps
You can route requests to another app running on the server:
deskThing.sendDataToOtherApp('appId', { type: 'set', payload: { key: 'value' } });
Fetching Data from the Server
To fetch persistent data from the server:
const data = await deskThing.getData();
console.log('Fetched data:', data);
Managing Settings
To manage settings:
const settings = await deskThing.getSettings();
console.log('Current settings:', settings);
Background Tasks
To add a background task:
const taskLoop = () => {
// Your background task code
return true;
};
deskThing.addBackgroundTaskLoop(taskLoop);
Additional Information
You can find more information in https://github.com/itsriprod/deskthing-app-client