Arhn - архитектура программирования

Мне нужна клиентская библиотека java stomp, которая работает с ssl

Я пробую несколько stomp-библиотек для java (gozirra, stompj, activemq). Все эти библиотеки имеют плохую документацию, например, только один пример, и у меня есть серьезная проблема:

Мне нужна поддержка SSL.

Протокол stomp+ssl существует и поддерживается activemq, но я не могу найти клиент Java, который его поддерживает.

19.02.2012

  • Просто любопытно... если клиент Java, зачем использовать Stomp? 19.02.2012
  • Это приложение для Android, и я не могу использовать JMS или openwire (насколько мне известно). 20.02.2012
  • Вы нашли работающий клиент stomp+ssl? 28.08.2013
  • Да, stomp.fusesource.org 02.10.2013
  • mgiammarco, ссылка не открывается. Вы можете обновить? 30.06.2017
  • github.com/fusesource/stompjms 25.07.2017

Ответы:


1

С библиотекой из activemq делаем так:

                System.setProperty("javax.net.ssl.keyStore",
            "/home/foo/.keystore/client.ks");
    System.setProperty("javax.net.ssl.keyStorePassword", "changeme");
    System.setProperty("javax.net.ssl.trustStore",
            "/home/foo/.keystore/client.ts");

    StompConnection connection = new StompConnection();
    SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory
            .getDefault();
    SSLSocket sslsocket = (SSLSocket) factory.createSocket("127.0.0.1",
            61612);
    connection.open(sslsocket);
28.02.2014

2

Я нашел эту дискуссию на форуме о JMS на Android, которая ссылается на экспериментальный API Stomp, включенный в ActiveMQ 5.2 и выше (пример скопирован ниже)

Также упоминается, что REST API может лучше подходить для мобильных устройств, позволяя сохранять состояние. чисто у брокера.

StompConnection connection = new StompConnection();
connection.open("localhost", 61613);

connection.connect("system", "manager");
StompFrame connect = connection.receive();
if (!connect.getAction().equals(Stomp.Responses.CONNECTED)) {
    throw new Exception ("Not connected");
}

connection.begin("tx1");
connection.send("/queue/test", "message1", "tx1", null);
connection.send("/queue/test", "message2", "tx1", null);
connection.commit("tx1");

connection.subscribe("/queue/test", Subscribe.AckModeValues.CLIENT);

connection.begin("tx2");

StompFrame message = connection.receive();
System.out.println(message.getBody());
connection.ack(message, "tx2");

message = connection.receive();
System.out.println(message.getBody());
connection.ack(message, "tx2");

connection.commit("tx2");
connection.disconnect();
20.02.2012
  • Спасибо, но я нашел (и попробовал) по крайней мере три клиента java stomp, и они работают. К сожалению, нет SSL, а он мне очень нужен. Спасибо за идею REST, но я попробую после того, как провалю все попытки с топать. 20.02.2012
  • Вы уверены, что ваши сертификаты SSL работают? Были ли у вас успехи с любыми клиентами STOMP+SSL (не Java)? 24.02.2012
  • Могу сказать, что я успешно настроил сервер activemq для использования протокола stomp+ssl. Пробовал с telnet, он запускает согласование ssl. Я еще не пробовал ни с одним клиентом (java или не java). 24.02.2012

  • 3

    Не уверен, что это работает на Android, но стоит попробовать клиент FuseSource StompJMS, доступный на Github. Он использует библиотеку hwatdispatch, которая имеет встроенные стандартные транспорты TCP и SSL. В любом случае стоит попробовать.

    25.02.2012
  • Я попробовал это по вашему предложению, я видел, что он поддерживает ssl, но из-за того, что нет ни примера, ни документации, я не могу настроить хранилище ключей, и поэтому соединение ssl не работает. Любая идея? 11.03.2012
  • Хорошо, я подтверждаю, что реализация FuseSource Stomp работает с ssl, но документации не хватает... 23.04.2012
  • У него ужасная лицензия - вам нужно будет сделать исходный код вашего приложения свободно доступным, если вы используете это, что означает, что это не может быть использовано в коммерческих целях. 21.11.2012
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..