1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chinasoft3_ohos-StompProtocolOhos

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

StompProtocolOhos

项目介绍

  • Проект: StompProtocolOhos.
  • Серия: OpenHarmony, сторонние компоненты.
  • Функция: поддержка протокола STOMP для длинных соединений и отправки/получения сообщений.
  • Состояние проекта: завершено.
  • Различия в вызовах: отсутствуют.
  • Версия разработки: SDK6, DevEco Studio 2.2 Beta1.
  • Базовая версия: Release 1.6.6.

Эффект демонстрации

Демонстрация эффекта:

[введите описание изображения]

Инструкция по установке

  1. В файле build.gradle в корневом каталоге проекта:
    
    

allprojects { repositories { maven { url 'https://s01.oss.sonatype.org/content/repositories/releases/' } } }

2. В файле entry модуля build.gradle:

    ```gradle
dependencies {
      implementation('com.gitee.chinasoft_ohos:StompProtocolOhos:1.0.1')
    ......  
}

В версии SDK6 и DevEco Studio 2.2 Beta1 проект можно запустить напрямую. Если запуск не удаётся, удалите файлы проекта .gradle, .idea, build, gradle, build.gradle и создайте новый проект на основе вашей версии. Скопируйте соответствующие файлы нового проекта в корневой каталог.

Использование

  1. Пример бэкенда:

WebSocketConfig.groovy

@Configuration
@EnableWebSocket

@EnableWebSocketMessageBroker

class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    void configureMessageBroker(MessageBrokerRegistry config) {

        long[] heartbeat = [ 30000, 30000 ];
        config.enableSimpleBroker("/topic", "/queue", "/exchange")
            .setTaskScheduler(new DefaultManagedTaskScheduler()) // enable heartbeats
            .setHeartbeatValue(heartbeat); // enable heartbeats
//        config.enableStompBrokerRelay("/topic", "/queue", "/exchange"); // Uncomment for external message broker (ActiveMQ, RabbitMQ)
        config.setApplicationDestinationPrefixes("/topic", "/queue"); // prefix in client queries
        config.setUserDestinationPrefix("/user");
    }

    @Override
    void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/example-endpoint").setAllowedOrigins("*").withSockJS()
    }

    @Override
    void configureWebSocketTransport(WebSocketTransportRegistration registration) {
        registration.setMessageSizeLimit(8 * 1024);
    }
}

SocketController.groovy

@Slf4j
@RestController
class SocketController {

    @Autowired
    SocketService socketService

    @MessageMapping('/hello-msg-mapping')
    @SendTo('/topic/greetings')
    EchoModel echoMessageMapping(String message) {
        log.debug("React to hello-msg-mapping")
        return new EchoModel(message.trim())
    }

    @RequestMapping(value = '/hello-convert-and-send', method = RequestMethod.POST)
    void echoConvertAndSend(@RequestParam('msg') String message) {
        socketService.echoMessage(message)
    }
}
  1. Пример использования:

Базовый пример

 private StompClient mStompClient;

 // ...
 
 mStompClient = Stomp.over(Stomp.ConnectionProvider.OKHTTP, "ws://" + OhOS_EMULATOR_LOCALHOST + ":" + RestClient.SERVER_PORT + "/example-endpoint/websocket");
 mStompClient.connect();
  
    mStompClient.topic("/topic/greetings")
                    .subscribeOn(Schedulers.io())
                    .observeOn(HarmonySchedulers.mainThread())
                    .subscribe(topicMessage -> {
                        debug("Received " + topicMessage.getPayload());
                        addItem(mGson.fromJson(topicMessage.getPayload(), EchoModel.class));
                    }, throwable -> {
                        debug("Error on subscribe topic" + throwable);
                    });
  
 // ...

 mStompClient.disconnect();

. Подписка на жизненный цикл соединения:

lifecycleDisposable = connectionProvider.lifecycle()
                    .subscribe(lifecycleEvent -> {
                    switch (lifecycleEvent.getType()) {
                        case OPENED:
                          HiLog.error(LABEL, "Socket opened");
                            break;

                        case CLOSED:
                            HiLog.error(LABEL, "Socket closed");
                            disconnect();
                            break;

Примечание: в тексте запроса присутствуют фрагменты кода, которые не удалось перевести из-за их специфичности. Также в запросе есть ссылки на сторонние ресурсы, которые не были переведены.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Поддержка длинных соединений для протокола STOMP для отправки и получения сообщений. Расширить Свернуть
MIT
Отмена

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/chinasoft3_ohos-StompProtocolOhos.git
git@gitlife.ru:oschina-mirror/chinasoft3_ohos-StompProtocolOhos.git
oschina-mirror
chinasoft3_ohos-StompProtocolOhos
chinasoft3_ohos-StompProtocolOhos
master