Aracılığıyla paylaş


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

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ütfenpaketleme belgelerimize bakın. rollup.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

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.