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

OSCHINA-MIRROR/jambestwick-StompProtocolAndroid

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

Протокол STOMP через WebSocket для Android

Релиз

Обзор

Эта библиотека предоставляет поддержку протокола STOMP https://stomp.github.io/ На данный момент библиотека работает только как клиент для серверной части с поддержкой STOMP, такой как NodeJS (stompjs или другое) или Spring Boot (SockJS).

Добавьте библиотеку в качестве зависимости Gradle

repositories { 
    jcenter()
    maven { url "https://jitpack.io" }
}
dependencies {
    implementation 'com.github.NaikSoftware:StompProtocolAndroid:{последняя версия}'
}

Пример серверной части (Spring Boot)

WebSocketConfig.groovy

@Configuration
@EnableWebSocket
@EnableWebSocketMessageBroker
class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

    @Override
    void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/topic", "/queue", "/exchange");
//        config.enableStompBrokerRelay("/topic", "/queue", "/exchange"); // Разкомментируйте для внешнего брокера сообщений (ActiveMQ, RabbitMQ)
        config.setApplicationDestinationPrefixes("/topic", "/queue"); // префикс в запросах клиента
        config.setUserDestinationPrefix("/user");
    }

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

SocketController.groovy

@Slf4j
@RestController
class SocketController {

    @MessageMapping('/hello-msg-mapping')
    @SendTo('/topic/greetings')
    EchoModel echoMessageMapping(String message) {
        log.debug("Ответ на hello-msg-mapping")
        return new EchoModel(message.trim())
    }
}

Просмотрите полный пример сервера https://github.com/NaikSoftware/stomp-protocol-example-server

Пример использования библиотекиОсновное использование


private StompClient mStompClient;

// ...

mStompClient = Stomp.over(Stomp.ConnectionProvider.OKHTTP, "ws://10.0.2.2:8080/example-endpoint/websocket");
mStompClient.connect();

mStompClient.topic("/topic/greetings").subscribe(topicMessage -> {
    Log.d(TAG, topicMessage.getPayload());
});

mStompClient.send("/topic/hello-msg-mapping", "Мое первое STOMP-сообщение!").subscribe();

// ...

mStompClient.disconnect();

См. полный пример https://github.com/NaikSoftware/StompProtocolAndroid/tree/master/example-client

Метод Stomp.over принимает класс для создания соединения в качестве первого параметра. Вы должны предоставить зависимость для библиотеки и передать класс. На данный момент поддерживаются провайдеры соединений:

  • org.java_websocket.WebSocket.class ('org.java-websocket:Java-WebSocket:1.3.0')
  • okhttp3.WebSocket.class ('com.squareup.okhttp3:okhttp:3.8.0')

Вы можете добавить свой провайдер соединений. Просто реализуйте интерфейс ConnectionProvider. Если вы реализуете новый провайдер, пожалуйста, создайте pull request :)

Цикл жизни соединения

mStompClient.lifecycle().subscribe(lifecycleEvent -> {
    switch (lifecycleEvent.getType()) {

        case OPENED:
            Log.d(TAG, "STOMP соединение открыто");
            break;

        case ERROR:
            Log.e(TAG, "Ошибка", lifecycleEvent.getException());
            break;

        case CLOSED:
            Log.d(TAG, "STOMP соединение закрыто");
            break;
    }
});

Библиотека поддерживает только отправку и получение сообщений. Подтверждение получения (ACK) сообщений и транзакции пока не реализованы.


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

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

Введение

Протокол STOMP через WebSocket для Android. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

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

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