web-dev-qa-db-ja.com

スタンドアロンのJava WebSocketクライアントエンドポイントを作成しますか?

WebSocketエンドポイントを作成したいclient in Java(可能な限り純粋で、フレームワークはありません)が、事実上すべての例でJavaのサーバーエンドポイントしかありません、クライアントはJavascriptですが、誰かが私に良いクライアントの例を教えてもらえますか、それとも提供できますか?

12
Tyler Durden

これがあなたの基準に合うかどうかはわかりませんが、Jettyにはかなりクリーンなクライアントの例があります:

http://www.Eclipse.org/jetty/documentation/current/jetty-websocket-client-api.html

お役に立てば幸いです:)

5
lorinpa

@ClientEndpoint注釈は仕様の一部であるため、これを使用することをお勧めします。これは good tutoria lです。手順4と6を参照してください。

Openshiftチュートリアルのステップ6

 @ClientEndpoint
public class WordgameClientEndpoint {

private static CountDownLatch latch;

private Logger logger = Logger.getLogger(this.getClass().getName());

@OnOpen
public void onOpen(Session session) {
    // same as above
}

@OnMessage
public String onMessage(String message, Session session) {
    // same as above
}

@OnClose
public void onClose(Session session, CloseReason closeReason) {
    logger.info(String.format("Session %s close because of %s", session.getId(), closeReason));
    latch.countDown();
}

public static void main(String[] args) {
    latch = new CountDownLatch(1);

    ClientManager client = ClientManager.createClient();
    try {
        client.connectToServer(WordgameClientEndpoint.class, new URI("ws://localhost:8025/websockets/game"));
        latch.await();

    } catch (DeploymentException | URISyntaxException | InterruptedException e) {
        throw new RuntimeException(e);
    }
}

}

この例では、JavaのWebSocketのリファレンス実装である tyrus を使用しているため、十分にサポートされたWebSocket実装の要件を満たしていると思います。

8
Leo