You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/communication-services/concepts/chat/concepts.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ author: kperla97
6
6
manager: sundraman
7
7
services: azure-communication-services
8
8
ms.author: chpalm
9
-
ms.date: 05/09/2023
9
+
ms.date: 07/18/2023
10
10
ms.topic: conceptual
11
11
ms.service: azure-communication-services
12
12
ms.subservice: chat
@@ -25,7 +25,6 @@ The Chat APIs provide an **auto-scaling** service for persistently stored text a
25
25
-**Service & Bot Extensibility** - REST APIs and server SDKs allow services to send and receive messages. It is easy to add bots with [Azure Bot Framework integration](../../quickstarts/chat/quickstart-botframework-integration.md).
26
26
27
27
28
-
29
28
## Chat overview
30
29
31
30
Chat conversations happen within **chat threads**. Chat threads have the following properties:
@@ -53,17 +52,17 @@ For customers that use Virtual appointments, refer to our Teams Interoperability
53
52
54
53
There are two core parts to chat architecture: 1) Trusted Service and 2) Client Application.
55
54
56
-
:::image type="content" source="../../media/chat-architecture.svg" alt-text="Diagram showing Communication Services' chat architecture.":::
55
+
:::image type="content" source="../../media/chat-architecture-updated.svg" alt-text="Diagram showing Communication Services' chat architecture.":::
57
56
58
57
-**Trusted service:** To properly manage a chat session, you need a service that helps you connect to Communication Services by using your resource connection string. This service is responsible for creating chat threads, adding and removing participants, and issuing access tokens to users. More information about access tokens can be found in our [access tokens](../../quickstarts/identity/access-tokens.md) quickstart.
59
-
-**Client app:** The client application connects to your trusted service and receives the access tokens that are used by users to connect directly to Communication Services. After creating the chat thread and adding users as participants, they can use the client application to connect to the chat thread and send messages. Use real-time notifications feature, which we discuss below, in your client application to subscribe to message & thread updates from other participants.
58
+
-**Client app:** The client application connects to your trusted service and receives the access tokens that are used by users to connect directly to Communication Services. After creating the chat thread and adding users as participants, they can use the client application to connect to the chat thread and send messages. Real-time notifications in your client application can be used to subscribe to message & thread updates from other participants.
60
59
61
60
62
61
## Message types
63
62
64
63
As part of message history, Chat shares user-generated messages and system-generated messages. System messages are generated when a chat thread is updated and identify when a participant was added or removed or when the chat thread topic was updated. When you call `List Messages` or `Get Messages` on a chat thread, the result contains both kind of messages in chronological order.
65
64
66
-
For user-generated messages, the message type can be set in `SendMessageOptions` when sending a message to chat thread. If no value is provided, Communication Services will default to `text` type. Setting this value is important when sending HTML. When `html` is specified, Communication Services sanitize the content to ensure that it's rendered safely on client devices.
65
+
For user-generated messages, the message type can be set in `SendMessageOptions` when sending a message to chat thread. If no value is provided, Communication Services defaults to `text` type. Setting this value is important when sending HTML. When `html` is specified, Communication Services sanitize the content to ensure that it's rendered safely on client devices.
67
66
-`text`: A plain text message composed and sent by a user as part of a chat thread.
68
67
-`html`: A formatted message using html, composed and sent by a user as part of chat thread.
69
68
@@ -75,16 +74,15 @@ Types of system messages:
75
74
## Real-time notifications
76
75
77
76
JavaScript Chat SDK supports real-time notifications. This feature lets clients listen to Communication Services for real-time updates and incoming messages to a chat thread without having to poll the APIs.
78
-
Use an Event Grid resource to subscribe to chat related events (post operation) which can be plugged into your custom application notification service. You will need to validate(../../how-tos/event-grid/view-events-request-bin.md) and locally test events(../../how-tos/event-grid/local-testing-event-grid.md) once you set up the event grid resource to ensure that events are being sent.
79
77
80
78
The client app can subscribe to following events:
81
79
-`chatMessageReceived` - when a new message is sent to a chat thread by a participant.
82
80
-`chatMessageEdited` - when a message is edited in a chat thread.
83
81
-`chatMessageDeleted` - when a message is deleted in a chat thread.
84
82
-`typingIndicatorReceived` - when another participant sends a typing indicator to the chat thread.
85
83
-`readReceiptReceived` - when another participant sends a read receipt for a message they have read.
86
-
-`chatThreadCreated` - when a chat thread is created by a Communication Services user.
87
-
-`chatThreadDeleted` - when a chat thread is deleted by a Communication Services user.
84
+
-`chatThreadCreated` - when a Communication Services user creates a chat thread.
85
+
-`chatThreadDeleted` - when a Communication Services user deletes a chat thread.
88
86
-`chatThreadPropertiesUpdated` - when chat thread properties are updated; currently, only updating the topic for the thread is supported.
89
87
-`participantsAdded` - when a user is added as a chat thread participant.
90
88
-`participantsRemoved` - when an existing participant is removed from the chat thread.
@@ -94,7 +92,9 @@ The client app can subscribe to following events:
94
92
> [!NOTE]
95
93
> Real time notifications are not to be used with server applications.
96
94
97
-
For more information, see [Server Events](../../../event-grid/event-schema-communication-services.md?bc=/azure/bread/toc.json&toc=/azure/communication-services/toc.json).
95
+
## Server events
96
+
97
+
This feature lets server applications listen to events such as when a message is sent and when a participant is joining or leaving the chat. Server applications can react to these events, adding/removing participants to the chat, archiving chats, performing analysis, and many other scenarios for orchestration. To see what kinds of chat events can be used by developers, see [Server Events](../../../event-grid/event-schema-communication-services.md?bc=/azure/bread/toc.json&toc=/azure/communication-services/toc.json).
98
98
99
99
## Push notifications
100
100
@@ -103,7 +103,7 @@ Android and iOS Chat SDKs support push notifications. To send push notifications
103
103
IOS and Android SDK support the below event:
104
104
-`chatMessageReceived` - when a new message is sent to a chat thread by a participant.
105
105
106
-
Android SDK supports additional events:
106
+
Android SDK supports extra events:
107
107
-`chatMessageEdited` - when a message is edited in a chat thread.
108
108
-`chatMessageDeleted` - when a message is deleted in a chat thread.
109
109
-`chatThreadCreated` - when a Communication Services user creates a chat thread.
|Real-time notifications (enabled by proprietary signaling package**)| Chat clients can subscribe to get real-time updates for incoming messages and other operations occurring in a chat thread. To see a list of supported updates for real-time notifications, see [Chat concepts](concepts.md#real-time-notifications)| ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ | ✔️ |
45
45
|Mobile push notifications with Notification Hub | The Chat SDK provides APIs allowing clients to be notified for incoming messages and other operations occurring in a chat thread by connecting an Azure Notification Hub to your Communication Services resource. In situations where your mobile app is not running in the foreground, patterns are available to [fire pop-up notifications](../notifications.md) ("toasts") to inform end-users, see [Chat concepts](concepts.md#push-notifications). | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ |
46
-
| Server Events with Event Grid | Use the chat events available in Azure Event Grid to plug custom notification services or post that event to a webhook to execute business logic like updating CRM records after a chat is finished | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
47
46
| Reporting </br>(This info is available under Monitoring tab for your Communication Services resource on Azure portal) | Understand API traffic from your chat app by monitoring the published metrics in Azure Metrics Explorer and set alerts to detect abnormalities | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
48
47
|| Monitor and debug your Communication Services solution by enabling diagnostic logging for your resource | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
49
48
50
-
**The proprietary signaling package is implemented using web sockets. It will fallback to long polling if web sockets are unsupported.
49
+
> [!NOTE]
50
+
>The proprietary signaling package is implemented using web sockets. It will fallback to long polling if web sockets are unsupported.
51
51
52
52
## JavaScript Chat SDK support by OS and browser
53
53
54
-
The following table represents the set of supported browsers and versions which are currently available.
54
+
The following table represents the set of supported browsers and versions, which are currently available.
55
55
56
56
|| Windows | macOS | Ubuntu | Linux | Android | iOS | iPad OS|
0 commit comments