Публикация и подписка между клиентами
В этом кратком руководстве показано, как
- подключение к ресурсу 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-адреса клиентского доступа подробно описывается практика.
Как показано на схеме выше, клиент имеет разрешения на отправку сообщений и присоединение к определенной группе с именем 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
- Подписка на групповые сообщения
- публикация сообщений в группах
Далее вы узнаете, как отправлять сообщения в режиме реального времени с сервера приложений клиентам.