Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.jsiç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 (Sohbet İş Parçacığıİstemcisi)
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 { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { ChatClient } from "@azure/communication-chat";
// 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
topickullanı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
participantskullanın; - Tekrarlanabilir istek belirtmek için
idempotencyTokenkullanma
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.
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { ChatClient } from "@azure/communication-chat";
// 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);
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:
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { ChatClient } from "@azure/communication-chat";
// 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);
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
contentkullanın;
sendMessageOptions isteğe bağlı parametreleri tanımlamak için kullanılır:
- gönderenin görünen adını belirtmek için
senderDisplayNamekullanın; - 'text' veya 'html' gibi ileti türünü belirtmek için
typekullanın;
sendChatMessageResult, iletinin gönderilmesinden döndürülen sonuç, iletinin benzersiz kimliği olan bir kimlik içerir.
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { ChatClient, SendMessageOptions } from "@azure/communication-chat";
// 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);
const chatThreadClient = chatClient.getChatThreadClient("<threadId>");
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.
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { ChatClient } from "@azure/communication-chat";
// 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);
// 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.
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { ChatClient } from "@azure/communication-chat";
// 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);
const chatThreadClient = chatClient.getChatThreadClient("<threadId>");
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ı
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { ChatClient } from "@azure/communication-chat";
// 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);
const chatThreadClient = chatClient.getChatThreadClient("<threadId>");
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.
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { ChatClient } from "@azure/communication-chat";
// 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);
const chatThreadClient = chatClient.getChatThreadClient("<threadId>");
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.
import { AzureCommunicationTokenCredential } from "@azure/communication-common";
import { ChatClient } from "@azure/communication-chat";
// 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);
// 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
Ağaç kesimi
Loglamayı etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, çalışma zamanında setLogLevel@azure/logger çağrılarak günlük tutma etkinleştirilebilir.
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
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