@phygrid/hub-client v4.4.6
PhyHub Client
The PhyHubClient is a Node.js class designed to facilitate communication with the PhyHub platform. It provides methods to connect to the PhyHub server, emit events, and handle responses.
Installation
To use the PhyHubClient in your project, you can install it via npm or yarn:
npm install @phygrid/hub-clientyarn add @phygrid/hub-clientUsage
Importing the Client
You can import the PhyHubClient class and the connectPhyClient function in your project as follows:
import { PhyHubClient, connectPhyClient } from '@phygrid/hub-client';Connecting to PhyHub
To connect to the PhyHub server, use the connectPhyClient function:
const moduleName = 'your-module-name'; // Optional, defaults to Application Instace ID
const dataResidency = 'EU'; // Optional, defaults to 'EU'
const client: PhyHubClient = await connectPhyClient(moduleName, dataResidency);or
const client: PhyHubClient = await connectPhyClient();Methods
isConnected()
Check if PhyHub is connected:
const isConnected = client.isConnected();
console.log(`Is connected: ${isConnected}`);getDeviceStatus()
Retrieve the device status:
const deviceStatus = await client.getDeviceStatus();
console.log('Device Status:', deviceStatus);getScreenInstance()
Retrieve the screen instance settings:
const screenInstance = await client.getScreenInstance();
console.log('Screen Instance:', screenInstance);getEdgeInstance()
Retrieve the edge instance settings:
const edgeInstance = await client.getEdgeInstance();
console.log('Edge Instance:', edgeInstance);getDeviceInstance()
Retrieve the device instance:
const deviceInstance = await client.getDeviceInstance();
console.log('Device Instance:', deviceInstance);getDeviceNetworks()
Retrieve the device networks:
const deviceNetworks = await client.getDeviceNetworks();
console.log('Device Networks:', deviceNetworks);setScreenInstanceReportedProperties(payload)
Set the reported properties for the screen instance:
const payload = {
// Your payload here
};
const response = await client.setScreenInstanceReportedProperties(payload);
console.log('Response:', response);emit(method, ...args)
Emit a custom event:
client.emit('yourMethod', { yourData: 'data' }, (response) => {
console.log('Response:', response);
});emitTo(targetInstance, method, ...args)
Emit a custom event to a specific target instance:
client.emitTo('targetInstance', 'yourMethod', { yourData: 'data' }, (response) => {
console.log('Response:', response);
});Example
Here is a complete example demonstrating how to use the PhyHubClient:
import { connectPhyClient } from '@phygrid/hub-client';
async function main() {
try {
const client = await connectPhyClient();
if (client.isConnected()) {
console.log('Connected to PhyHub');
const deviceStatus = await client.getDeviceStatus();
console.log('Device Status:', deviceStatus);
const edgeInstance = await client.getEdgeInstance();
console.log('Edge Instance:', edgeInstance);
}
} catch (error) {
console.error('Error:', error);
}
}
main();Signals
The hub-client can be used to initialize and utilize signals efficiently.
Initialization
To initialize and use signals, follow this pattern:
public initializeSignals = async (initParams?: InitSignalPayload) => Promise<SignalsService>Parameters
| Parameter | Type | Description |
|---|---|---|
initParams | InitSignalPayload (optional) | Optional payload containing initialization data. If not provided, the method fetches necessary data from the device and instance settings. |
Example
import { connectPhyClient } from '@phygrid/hub-client';
const initParams = {
"deviceId": "device-12345",
"installationId": "install-67890",
"spaceId": "space-abcdef",
"tenantId": "tenant-xyz",
"appVersion": "1.0.0",
"appId": "com.example.app",
"environment": "production",
"dataResidency": "EU",
"country": "SE",
"installationVersion": "2.3.4",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR...",
"clientUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"ip": "192.168.1.100"
};
const client = await connectPhyClient();
const signals = await client.initializeSignals(initParams);
signals.sendEvent(...);or
import { connectPhyClient } from '@phygrid/hub-client';
const client = await connectPhyClient();
const signals = await client.initializeSignals();
signals.sendEvent(...);Available Methods
Instance Management
getInstanceProps()Returns instance props.
Session Management
createSession()Creates a new session and initializes the instance with the required parameters.initialize(signalParams: InitSignalPayload)Initializes theSignalsServicewith the provided signal parameters.initializeEdgeApp(signalParams: InitSignalPayload | {} = {})Initializes theSignalsServicefor edge applications with the given parameters.
Application Tracking
sendAppOnline(message?: string)Tracks when the application comes online.sendAppOffline(message?: string)Tracks when the application goes offline.
Event Handling
sendEvent(event: Event, expectResponse?: boolean)Sends an event to the server.sendCustomEvent(event: TrackEvent)Sends a custom event.
Transaction Events
sendCheckout(checkout: CheckoutEvent, expectResponse?: boolean)Sends a checkout event.sendPurchase(purchase: PurchaseEvent, expectResponse?: boolean)Sends a purchase event.
Session & Client Data
sendSession(session: Session, expectResponse?: boolean)Sends session data to the server.sendClient(client: Client, expectResponse?: boolean)Sends client information to the server.
Order Processing
sendProcessOrderStart()Tracks the start of an order process.sendProcessOrderEnd()Tracks the end of an order process.sendProcessOrderSuccess()Tracks a successful order process.sendProcessOrderFailed()Tracks a failed order process.sendOrderItem(params: object)Tracks an item in an order.sendProcessOrderItemDelivered(params: object)Tracks an item that was successfully delivered.sendProcessOrderItemFailed(params: object)Tracks an item that failed to be delivered.
Authentication Events
sendAuthenticationSuccess()Tracks a successful authentication event.sendAuthenticationFailed()Tracks a failed authentication event.
Barcode & Media Events
sendScanBarcode(params: object)Tracks a barcode scan event.sendMediaFinished(params: object)Tracks when media content has finished playing.
Product & Cart Events
sendCategoryView(params: object)Tracks viewing a product category.sendProductView(params: object)Tracks viewing a specific product.sendCartAdd(params: object)Tracks adding a product to the cart.sendCartView()Tracks viewing the cart.sendCartRemove(params: object)Tracks removing a product from the cart.sendCartClear()Tracks clearing the cart.
Search & Feedback
sendSearch(params: object)Tracks searching for a product or category.sendSearchClear()Tracks clearing the search.sendRating(params: object)Tracks user ratings of the experience.sendFeedback(params: object)Tracks user feedback.sendQrScan()Tracks a QR code scan.
State Management
setState(params: object)Sets a state key, value, and expiry duration.
This structured documentation makes it easier to understand the available signal methods and their usage.
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
6 months ago
6 months ago
8 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
6 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
6 months ago
8 months ago
9 months ago
9 months ago
6 months ago
8 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
6 months ago
6 months ago
8 months ago
8 months ago
7 months ago
8 months ago
5 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
5 months ago
11 months ago
5 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
4 months ago
4 months ago
4 months ago
11 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
11 months ago
11 months ago
8 months ago
8 months ago
11 months ago
8 months ago
8 months ago
11 months ago
8 months ago
8 months ago
8 months ago
8 months ago
10 months ago
10 months ago
8 months ago
10 months ago
8 months ago
10 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
11 months ago
8 months ago
8 months ago
8 months ago
10 months ago
6 months ago
8 months ago
10 months ago
8 months ago
10 months ago
8 months ago
10 months ago
8 months ago
10 months ago
10 months ago
10 months ago
8 months ago
10 months ago
10 months ago
10 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
6 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
6 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
6 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
8 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
5 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
9 months ago
7 months ago
8 months ago
9 months ago
7 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
7 months ago
8 months ago
8 months ago
9 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
6 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
5 months ago
8 months ago
8 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago