@azure/communication-signaling

Azure Communication Signaling Client

Usage no npm install needed!

<script type="module">
  import azureCommunicationSignaling from 'https://cdn.skypack.dev/@azure/communication-signaling';
</script>

README

Azure Communication Signaling client library for JavaScript

The Azure Communication Signaling client library lets developers add real-time notifications for receiving new/update/delete chat message events, typing indicator event, read receipt event, and chat thread events.

Read more about Azure Communication Services here

Getting started

Prerequisites

Installing

npm install @azure/communication-signaling

Browser support

JavaScript Bundle

This client library is only supported in the browser. To use this client library, first you need to use a bundler. For details on how to do this, please refer to our bundling documentation.

Key concepts

SignalingClient

SignalingClient is the primary interface for developers using this client library. It provides methods to enable/disable real-time notifications and register listeners for different events.

Examples

Initialize SignalingClient

Use user access token and Azure logger to initialize signaling client.

import { CommunicationSignalingClient } from '@azure/communication-signaling';
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { createClientLogger } from "@azure/logger";

let userAccessToken = '<USER_ACCESS_TOKEN>';
let tokenCredential = new AzureCommunicationTokenCredential(userAccessToken);
let logger = createClientLogger("communication-signaling");
let signalingClient = new CommunicationSignalingClient(tokenCredential, logger);

Enable real-time notifications

signalingClient.start();

Disable real-time notifications

signalingClient.stop();

Register listener to events

With real-time signaling, you can subscribe to listen for new incoming events and call your own business logic accordingly.


// register listener to new incoming message event
signalingClient.on("chatMessageReceived", (payload) => {
    console.log("Notification chatMessageReceived!");
    // your code here
});

// register listener to typing indicator event
signalingClient.on("typingIndicatorReceived", (payload) => {
    console.log("Notification typingIndicatorReceived!");
    // your code here
});

// register listener to thread deleted event
signalingClient.on("chatThreadDeleted", (payload) => {
    console.log("Notification chatThreadDeleted!");
    // your code here
});