我想在Java中创建一个websocket端点客户端(尽可能纯,没有框架),但实际上我发现的所有示例都只有Java中的服务器端点,而客户端在的JavaScript。任何人都可以指出一个好的客户端示例,或提供一个?
答案 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
希望有所帮助:)