arifa-client
v1.0.12
Published
JavaScript/TypeScript client SDK for Arifa Realtime Notification Service
Maintainers
Readme
ArifaClient SDK
JavaScript/TypeScript client SDK for Arifa Realtime Notification Service.
Allows you to connect via WebSocket, listen to events, and send notifications using HTTP.
Installation
npm install arifa-clientor using Yarn:
yarn add arifa-clientUsage
Import and Initialize
import ArifaClient from "arifa-client";
const client = new ArifaClient({
apiKey: "YOUR_API_KEY",
client: "web", // "web" or "mobile"
});Listen to Connection State
client.onConnectionChange((state) => {
console.log("Connection state:", state); // "connected" or "disconnected"
});Subscribe Recipient
Note: Recipient must be UUID
const sub = client.subscribe("RECIPIENT_UUID");
// Listen for events
sub.listen((event) => {
console.log("Received event:", event);
});
// Unsubscribe when done
sub.unsubscribe();Send a Event/Notification/Data
const res = await client.notify({
recipient: "RECIPIENT_UUID",
payload: {
title: "Hello",
message: "Welcome to Arifa!",
}, // Can be any JSON data
origin: "https://your-registered-domain.com", // Optional, use if web
client: "web", // Optional, "web" or "mobile"
});
console.log(res);recipient→ UUID of the userpayload→ Any JSON objectorign→ Optional string; typically your registered domain when sending from web.client→ Optional, "web" or "mobile"
Note: The notify method returns a result object with the notification status. Example responses:
"sent" → Notification successfully sent to a connected user
"User offline, notification saved" → User is offline; the message was stored for later delivery
"Failed to send/save notification" → There was an error sending or saving the notification
Disconnect
client.disconnect();Check Connection Status
if (client.connected()) {
console.log("WebSocket is connected");
} else {
console.log("WebSocket is disconnected");
}## ArifaClient Usage Example
import ArifaClient from "arifa-client";
// Initialize client
const client = new ArifaClient({
apiKey: "arifa_test:YOUR_API_KEY",
client: "web", // "web" or "mobile"
});
// Listen to connection state
client.onConnectionChange((state) => {
console.log("Connection state:", state); // "connected" or "disconnected"
});
// Subscribe a recipient (UUID required)
const sub = client.subscribe("RECIPIENT_UUID");
// Listen for incoming events
sub.listen((event) => {
console.log("Received event:", event);
});
// Example: Send a notification/event
const sendNotification = async () => {
const res = await client.notify({
recipient: "RECIPIENT_UUID",
payload: { title: "Hello", message: "Welcome to Arifa!" }, // Any JSON data
});
console.log(res);
/*
Possible responses:
"sent" → Notification successfully sent to a connected user
"User offline, notification saved" → User offline; message stored for later delivery
"Failed to send/save notification" → Error sending or saving notification
*/
};
sendNotification();
// Unsubscribe when done
// sub.unsubscribe();
// Disconnect client when done
// client.disconnect();
// Check connection status
if (client.connected()) {
console.log("WebSocket is connected");
} else {
console.log("WebSocket is disconnected");
}