JavaScript için Azure İletişim Sohbeti istemci kitaplığı - sürüm 1.5.0
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 burada bulabilirsiniz
Başlarken
Önkoşullar
- Bir Azure aboneliği.
- Mevcut bir İletişim Hizmetleri kaynağı. Kaynağı oluşturmanız gerekiyorsa Azure Portalı, Azure PowerShell veya Azure CLI'yı kullanabilirsiniz.
- 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ütfen paketleme belgelerimize bakın.
içinde rollup.config.js
, eklentiye cjs
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"]
}
})
Önemli 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 okuduğunu neredeyse gerçek zamanlı güncelleştirmeler alır.
ChatClient
ChatClient
, bu istemci kitaplığını kullanan geliştiriciler için birincil arabirimdir. bir iş parçacığı oluşturmak ve silmek için zaman uyumsuz yöntemler sağlar.
ChatThreadClient
ChatThreadClient
sohbet yazışması içinde ileti ve sohbet katılımcıları işlemlerini gerçekleştirmek 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ı createThread
oluşturmak için 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 kullanın
topic
;
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 kullanın
participants
; - Yinelenebilir istek belirtmek için kullanın
idempotencyToken
createChatThreadResult
, bir iş parçacığı oluşturmanın sonucudur. Oluşturulan iş parçacığının yanı sıra, iş parçacığına eklenemeyen geçersiz katılımcılar hakkında bilgi içeren bir errors
özelliği içerirchatThread
.
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.
Mevcut iş parçacığı kimliğine sahip ChatClient yöntemini kullanarak getChatThreadClient
yeni bir ChatThreadClient başlatabilirsiniz:
const chatThreadClient = chatClient.getChatThreadClient(threadId);
İş parçacığına ileti gönderme
threadId ile tanımlanan bir iş parçacığına ileti göndermek için yöntemini kullanın sendMessage
.
sendMessageRequest
, ileti isteğini açıklamak için kullanılır:
- Sohbet iletisi içeriğini sağlamak için kullanın
content
;
sendMessageOptions
isteğe bağlı parametreleri tanımlamak için kullanılır:
- Gönderenin görünen adını belirtmek için kullanın
senderDisplayName
; - 'text' veya 'html' gibi ileti türünü belirtmek için kullanın
type
;
sendChatMessageResult
, ileti göndermeden 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, yöntemi belirtilen aralıklarla yoklayarak listMessages
sohbet iletilerini alabilirsiniz.
for await (const chatMessage of chatThreadClient.listMessages()) {
// your code here
}
Bir iş parçacığına Kullanıcı Ekleme
Bir iş parçacığı oluşturulduktan sonra bu iş parçacığına kullanıcı ekleyebilir ve bu iş parçacığından kullanıcı kaldırabilirsiniz. Kullanıcıları ekleyerek, onlara iş parçacığına ileti gönderebilmeleri için erişim vermiş olursunuz. Bu kullanıcı için yeni bir erişim belirteci ve kimlik alarak 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 için kimlik doğrulaması yapma
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
Kullanıcıları bir iş parçacığından 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
abone olma ve realTimeNotificationDisconnected
çağrı sunucusuyla bağlantının ne zaman etkin olduğunu bilmenize olanak tanır.
// 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
- Kullanıcıları bir iş parçacığından kaldırma
Katkıda bulunma
Bu kitaplığa katkıda bulunmak isterseniz, kodu derleme ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzunu okuyun.
Azure SDK for JavaScript
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin