创建一个独立的Java websocket客户端端点?

时间:2014-02-17 20:45:28

标签: java websocket client

我想在Java中创建一个websocket端点客户端(尽可能纯,没有框架),但实际上我发现的所有示例都只有Java中的服务器端点,而客户端在的JavaScript。任何人都可以指出一个好的客户端示例,或提供一个?

2 个答案:

答案 0 :(得分:8)

@ClientEndpoint annottation是规范的一部分,所以我建议使用它, 这是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);
    }
}

}

在这个例子中,他们正在使用tyrus,这是java中websockets的参考实现,所以我认为这符合你对支持良好的websocket实现的要求。

答案 1 :(得分:5)

不确定这是否符合您的标准,但Jetty在这里有一个非常干净的客户端示例:

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

希望有所帮助:)