Aracılığıyla paylaş


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

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.