是否有适用于Java的极简主义WebSocket客户端库?

时间:2014-03-12 01:20:42

标签: java sockets heroku frameworks websocket

标题说明了一切。

我正在尝试制作一个连接到heroku上托管的服务器的视频游戏,以进行文件验证。

由于heroku不支持vinella插座,我必须使用websockets。我可以使用Ruby或者一些大的java框架来制作一个websocket服务器,但我找不到一个用java创建客户端套接字的轻量级解决方案。

提前致谢!

2 个答案:

答案 0 :(得分:2)

JSR 356 (Java API for WebSocket),Java EE 7的一部分定义了客户端API。有多种实现:Tyrus(glassfish / WLS),Tomcat,......;基本上每个容器都提供实现或这个api,即使没有实现其他Java EE 7规范。

简单示例:

        final WebSocketContainer client = ContainerProvider.getWebSocketContainer();
        final Session session = client.connectToServer(new Endpoint() {
            @Override
            public void onOpen(Session session, EndpointConfig EndpointConfig) {

                try {
                    session.addMessageHandler(new MessageHandler.Whole<String>() {
                        @Override
                        public void onMessage(String message) {
                            System.out.println("### Received: " + message);
                        }
                    });

                    session.getBasicRemote().sendText("Do or do not, there is no try.");
                } catch (IOException e) {
                    // do nothing
                }
            }

            @Override
            public void onClose(Session session, CloseReason closeReason) {
                System.out.println("### Client session closed: " + closeReason);
            }
        }, ClientEndpointConfig.Builder.create().build(), URI.create("ws://echo.websocket.org"));

您可以查看Client Endpoint chapter in Tyrus user guide了解详情。

答案 1 :(得分:0)

Jetty具有WebSocket客户端API

Jetty WebSocket Client API