JavaScript için Azure İletişim Sohbeti istemci kitaplığı - sürüm 1.5.4
Sohbet için Azure İletişim Hizmetleri, geliştiricilerin uygulamalarına sohbet özellikleri eklemesine olanak tanır. Sohbet yazışmalarını ve kullanıcılarını yönetmek ve sohbet iletileri gönderip almak için bu istemci kitaplığını kullanın.
Azure İletişim Hizmetleri hakkında daha fazla bilgiyi buradan
Başlarken
Önkoşullar
- Azure aboneliği.
- Mevcut bir İletişim Hizmetleri kaynağı. Kaynağı oluşturmanız gerekiyorsa Azure Portal, Azure PowerShellveya Azure CLIkullanabilirsiniz.
- Node.js
Yükleme
npm install @azure/communication-chat
Tarayıcı desteği
JavaScript Paketi
Bu istemci kitaplığını tarayıcıda kullanmak için önce bir paketleyici kullanmanız gerekir. Bunun nasıl yapılacağının ayrıntıları için lütfenrollup.config.js
içinde, cjs
eklentisine aşağıdaki özelleştirilmiş ad dışarı aktarmalarını ekleyin.
cjs({
namedExports: {
events: ["EventEmitter"],
"@azure/communication-signaling": ["CommunicationSignalingClient", "SignalingClient"],
"@opentelemetry/api": ["CanonicalCode", "SpanKind", "TraceFlags"]
}
})
Temel kavramlar
Sohbet konuşması bir yazışmayla temsil edilir. Yazışmadaki her kullanıcıya sohbet katılımcısı adı verilir. Sohbet katılımcıları 1:1 sohbetinde birbirleriyle özel olarak sohbet edebilir veya 1:N grup sohbetinde bir araya gelebilir. Kullanıcılar ayrıca başkalarının ne zaman yazdığını ve iletileri ne zaman okuduklarını neredeyse gerçek zamanlı güncelleştirmeler alır.
ChatClient
ChatClient
, bu istemci kitaplığını kullanan geliştiriciler için birincil arabirimdir. İş parçacığı oluşturmak ve silmek için zaman uyumsuz yöntemler sağlar.
ChatThreadClient
ChatThreadClient
, ileti ve sohbet katılımcılarının sohbet yazışması içindeki işlemlerini yapmak için zaman uyumsuz yöntemler sağlar.
Örnekler
ChatClient'ı başlatma
Sohbet istemcisini başlatmak için kaynak URL'sini ve kullanıcı erişim belirtecini kullanın.
import { ChatClient } from '@azure/communication-chat';
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
// Your unique Azure Communication service endpoint
const endpointUrl = '<ENDPOINT>';
const userAccessToken = '<USER_ACCESS_TOKEN>';
const tokenCredential = new AzureCommunicationTokenCredential(userAccessToken);
const chatClient = new ChatClient(endpointUrl, tokenCredential);
İki kullanıcıyla iş parçacığı oluşturma
Sohbet yazışması oluşturmak için createThread
yöntemini kullanın.
createChatThreadRequest
, iş parçacığı isteğini açıklamak için kullanılır:
- bir iş parçacığı konusu vermek için
topic
kullanın;
createChatThreadOptions
, iş parçacığını oluşturmak için isteğe bağlı parametreleri ayarlamak için kullanılır:
- yazışmaya eklenecek sohbet katılımcılarını listelemek için
participants
kullanın; - Tekrarlanabilir istek belirtmek için
idempotencyToken
kullanma
createChatThreadResult
, bir iş parçacığı oluşturmanın sonucudur. Oluşturulan iş parçacığı olan bir chatThread
ve iş parçacığına eklenemedilerse geçersiz katılımcılar hakkında bilgi içeren bir errors
özelliği içerir.
const createChatThreadRequest = {
topic: "Hello, World!"
};
const createChatThreadOptions = {
participants: [
{
id: { communicationUserId: '<USER_ID>' },
displayName: '<USER_DISPLAY_NAME>'
}
]
};
const createChatThreadResult = await chatClient.createChatThread(
createChatThreadRequest,
createChatThreadOptions
);
const threadId = createChatThreadResult.chatThread.id;
ChatThreadClient oluşturma
ChatThreadClient, sohbet yazışması konusunu güncelleştirme, ileti gönderme, sohbet yazışmasına katılımcı ekleme gibi bir sohbet yazışmasına özgü işlemler gerçekleştirmenize olanak tanır.
ChatClient'ın mevcut iş parçacığı kimliğine sahip getChatThreadClient
yöntemini kullanarak yeni bir ChatThreadClient başlatabilirsiniz:
const chatThreadClient = chatClient.getChatThreadClient(threadId);
İş parçacığına ileti gönderme
threadId tarafından tanımlanan bir iş parçacığına ileti göndermek için sendMessage
yöntemini kullanın.
sendMessageRequest
ileti isteğini açıklamak için kullanılır:
- Sohbet iletisi içeriğini sağlamak için
content
kullanın;
sendMessageOptions
isteğe bağlı parametreleri tanımlamak için kullanılır:
- gönderenin görünen adını belirtmek için
senderDisplayName
kullanın; - 'text' veya 'html' gibi ileti türünü belirtmek için
type
kullanın;
sendChatMessageResult
, iletinin gönderilmesinden döndürülen sonuç, iletinin benzersiz kimliği olan bir kimlik içerir.
const sendMessageRequest =
{
content: 'Hello Geeta! Can you share the deck for the conference?'
};
const sendMessageOptions:SendMessageOptions = {
senderDisplayName: "Jack",
type: "text"
};
const sendChatMessageResult = await chatThreadClient.sendMessage(sendMessageRequest, sendMessageOptions);
const messageId = sendChatMessageResult.id;
bir iş parçacığından ileti alma
Gerçek zamanlı sinyalle, yeni gelen iletileri dinlemek için abone olabilir ve bellekteki geçerli iletileri uygun şekilde güncelleştirebilirsiniz.
// open notifications channel
await chatClient.startRealtimeNotifications();
// subscribe to new notification
chatClient.on("chatMessageReceived", (e) => {
console.log("Notification chatMessageReceived!");
// your code here
});
Alternatif olarak, belirtilen aralıklarla listMessages
yöntemini yoklayarak sohbet iletilerini alabilirsiniz.
for await (const chatMessage of chatThreadClient.listMessages()) {
// your code here
}
İş parçacığına Kullanıcı Ekleme
Bir iş parçacığı oluşturulduktan sonra, bu yazışmaya kullanıcı ekleyebilir ve bu iş parçacığından kullanıcı kaldırabilirsiniz. Kullanıcıları ekleyerek, onlara yazışmaya ileti gönderebilmeleri için erişim vermiş olursunuz. Bu kullanıcı için yeni bir erişim belirteci ve kimlik alarak işe başlamanız gerekir. Kullanıcının sohbet istemcisini başlatmak için bu erişim belirtecine ihtiyacı olacaktır. Belirteçler hakkında burada daha fazla bilgi: Azure İletişim Hizmetleri'ne kimlik doğrulaması
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
İş parçacığından Kullanıcı Kaldırma
Yukarıdakine benzer şekilde, kullanıcıları bir iş parçacığından da kaldırabilirsiniz. Kaldırmak için, eklediğiniz katılımcıların kimliklerini izlemeniz gerekir.
await chatThreadClient.removeParticipant({ communicationUserId: '<MEMBER_ID>' });
Gerçek zamanlı bildirimlerin bağlantı durumuna abone olma
Olaylara realTimeNotificationConnected
ve realTimeNotificationDisconnected
aboneliği, çağrı sunucusuna olan bağlantının ne zaman etkin olduğunu öğrenmenizi sağlar.
// subscribe to realTimeNotificationConnected event
chatClient.on('realTimeNotificationConnected', () => {
console.log("Real time notification is now connected!");
// your code here
});
// subscribe to realTimeNotificationDisconnected event
chatClient.on('realTimeNotificationDisconnected', () => {
console.log("Real time notification is now disconnected!");
// your code here
});
Sorun giderme
Sonraki adımlar
Bu hızlı başlangıçta aşağıdakilerin nasıl yapılacağını öğrendiniz:
- Sohbet istemcisi oluşturma
- 2 kullanıcıyla iş parçacığı oluşturma
- İş parçacığına ileti gönderme
- bir iş parçacığından ileti alma
- İş parçacığından Kullanıcı Kaldırma
Katkıda
Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.
Azure SDK for JavaScript