Клиентская библиотека службы Azure Web PubSub для Java
Служба Azure Web PubSub — это управляемая Azure служба, которая помогает разработчикам легко создавать веб-приложения с функциями реального времени и шаблоном подписки на публикацию. Любой сценарий, требующий обмена сообщениями публикации и подписки в режиме реального времени между сервером и клиентами или среди клиентов, может использовать службу Azure Web PubSub. Традиционные функции в режиме реального времени, которые часто требуют опроса с сервера или отправки HTTP-запросов, также могут использовать службу Azure Web PubSub.
В этой статье описывается клиентская библиотека службы Azure Web PubSub.
Эту библиотеку можно использовать в серверном приложении для управления клиентскими подключениями WebSocket, как показано на этой схеме:
Используйте эту библиотеку для:
- Отправка сообщений в концентраторы и группы.
- отправка сообщений определенным пользователям и подключениям;
- Группировка пользователей и подключений.
- Закрытие подключений.
- Предоставление, отмена и проверка разрешений для существующего подключения.
Дополнительные сведения см. в разделе:
- Пакет SDK java клиентской библиотеки Azure Web PubSub
- Справочная документация по клиентской библиотеке Azure Web PubSub
- Примеры клиентской библиотеки Azure Web PubSub для Java
- Документация по службе Azure Web PubSub
Приступая к работе
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если ее нет, можно создать учетную запись бесплатно.
- Пакет Java Development Kit (JDK) версии 8 или более поздней версии.
Включение пакета
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-messaging-webpubsub</artifactId>
<version>1.0.0</version>
</dependency>
WebPubSubServiceClient
Создание строка подключения с помощью
WebPubSubServiceClient webPubSubServiceClient = new WebPubSubServiceClientBuilder()
.connectionString("{connection-string}")
.hub("chat")
.buildClient();
WebPubSubServiceClient
Создание ключа доступа с помощью
WebPubSubServiceClient webPubSubServiceClient = new WebPubSubServiceClientBuilder()
.credential(new AzureKeyCredential("{access-key}"))
.endpoint("<Insert endpoint from Azure Portal>")
.hub("chat")
.buildClient();
Примеры
- Широковещательное сообщение для всего концентратора
- Широковещательное сообщение в группу
- Отправка сообщения в подключение
- Отправка сообщения пользователю
Широковещательное сообщение для всего центра
webPubSubServiceClient.sendToAll("Hello world!", WebPubSubContentType.TEXT_PLAIN);
Широковещательное сообщение для группы
webPubSubServiceClient.sendToGroup("java", "Hello Java!", WebPubSubContentType.TEXT_PLAIN);
Отправка сообщения в ответ на подключение
webPubSubServiceClient.sendToConnection("myconnectionid", "Hello connection!", WebPubSubContentType.TEXT_PLAIN);
Отправка сообщения пользователю
webPubSubServiceClient.sendToUser("Andy", "Hello Andy!", WebPubSubContentType.TEXT_PLAIN);
Устранение неполадок
Включение ведения журнала клиента
Вы можете настроить переменную среды AZURE_LOG_LEVEL
, чтобы просматривать инструкции записи в журнал, выполненные в клиентской библиотеке. Например, если указать значение AZURE_LOG_LEVEL=2
, будут отображаться все информационные сообщения журнала, а также сообщения журнала с предупреждениями и ошибками. Уровни журнала см. по этой ссылке: уровни журнала.
Клиент HTTP, используемый по умолчанию
Все клиентские библиотеки по умолчанию используют клиент Netty HTTP. При добавлении указанной выше зависимости клиентская библиотека будет автоматически настроена для использования HTTP-клиента NETTY. Настройка или изменение HTTP-клиента описывается в вики-сайте HTTP-клиентов.
Библиотека SSL, используемая по умолчанию
По умолчанию все клиентские библиотеки используют библиотеку SSL tomcat-native Boring для обеспечения производительности на уровне машинного уровня для операций SSL. Библиотека SSL Boring — это JAR-файл uber, содержащий собственные библиотеки для ОС Linux, macOS и Windows и повышающий производительность по сравнению с применяемой по умолчанию реализацией SSL в пакете JDK. Дополнительные сведения, включая уменьшение размера зависимостей, см. в разделе [настройка производительности][https://github.com/Azure/azure-sdk-for-java/wiki/Performance-Tuning].
Используйте эти ресурсы для начала создания собственного приложения: