Публикация и подписка между клиентами

GIF-файл публикации или подписки между клиентами без сервера приложений.

В этом кратком руководстве показано, как

  • подключение к ресурсу Web PubSub
  • Подписка на сообщения из групп
  • публикация сообщений в группах

Предварительные требования

  • Ресурс Web PubSub. Если вы еще не создали его, следуйте указаниям: Создание ресурса Web PubSub
  • Редактор кода, например Visual Studio Code.
  • Установка зависимостей для языка, который вы планируете использовать

Установка клиентского пакета SDK

Примечание

В этом руководстве используется клиентский пакет SDK, предоставляемый службой Web PubSub, которая все еще находится в предварительной версии. Интерфейс может измениться в более поздних версиях.

mkdir pubsub_among_clients
cd pubsub_among_clients

# The SDK is available as an NPM module.
npm install @azure/web-pubsub-client

Подключение к Web PubSub

Клиент, будь то браузер 💻, мобильное приложение 📱или устройство 💡Интернета вещей, использует URL-адрес клиентского доступа для подключения к ресурсу и проверки подлинности. Этот URL-адрес соответствует шаблону wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>. У клиента может быть несколько способов получения URL-адреса клиентского доступа. Для этого краткого руководства вы можете скопировать и вставить его из портал Azure показана на следующей схеме. Рекомендуется не жестко кодировать URL-адрес клиентского доступа в коде. В рабочей среде мы обычно настраиваем сервер приложений для возврата этого URL-адреса по запросу. В статье Создание URL-адреса клиентского доступа подробно описывается практика.

На схеме показано, как получить URL-адрес клиентского доступа.

Как показано на схеме выше, клиент имеет разрешения на отправку сообщений и присоединение к определенной группе с именем group1.

Создайте файл с именем index.js и добавьте следующий код.

const { WebPubSubClient } = require("@azure/web-pubsub-client");

// Instantiate the client object. 
// <client-access-url> is copied from Azure portal mentioned above.
const client = new WebPubSubClient("<client-access-url>");

Подписка на группу

Для получения сообщений от групп клиент

  • должен присоединиться к группе, от которую он хочет получать сообщения
  • имеет обратный вызов для обработки group-message события

В следующем коде показано, как клиент подписывается на сообщения из группы с именем group1.

// ...code from the last step

// Provide callback to the "group-message" event. 
client.on("group-message", (e) => {
  console.log(`Received message: ${e.message.data}`);
});

// Before joining group, you must invoke start() on the client object.
client.start();

// Join a group named "group1" to subscribe message from this group.
// Note that this client has the permission to join "group1", 
// which was configured on Azure portal in the step of generating "Client Access URL".
client.joinGroup("group1");

Публикация сообщения в группе

На предыдущем шаге мы настроили все необходимое для получения сообщений от group1, теперь мы отправим сообщения этой группе.

// ...code from the last step

// Send message "Hello World" in the "text" format to "group1".
client.sendToGroup("group1", "Hello World", "text");

Дальнейшие действия

С помощью клиентского пакета SDK вы теперь знаете, как

  • подключение к ресурсу Web PubSub
  • Подписка на групповые сообщения
  • публикация сообщений в группах

Далее вы узнаете, как отправлять сообщения в режиме реального времени с сервера приложений клиентам.