9

Java用のいくつかのストンプライブラリ(gozirra、stompj、activemq)を試しています。これらのライブラリはすべて、例が 1 つしかないなど、ドキュメントが貧弱であり、深刻な問題があります。

SSL サポートが必要です。

stomp+ssl プロトコルが存在し、activemq でサポートされていますが、それをサポートする Java クライアントを見つけることができません。

4

3 に答える 3

3

ActiveMQ 5.2 以降に含まれる実験的な Stomp APIを参照している、Android 上の JMS に関するこのフォーラム ディスカッションを見つけました (例を以下にコピー)。

また、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();
于 2012-02-20T17:47:28.067 に答える
2

Androidで動作するかどうかはわかりませんが、試してみる価値があるのは、Githubで利用可能なFuseSourceStompJMSクライアントです。標準のTCPトランスポートとSSLトランスポートの両方が組み込まれているhwatdispatchライブラリを使用します。とにかく一撃の価値があります。

于 2012-02-25T22:31:59.863 に答える
2

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);
于 2014-02-28T12:47:04.230 に答える