繁体   English   中英

java有没有极简的WebSocket客户端库?

[英]Is there a minimalist WebSocket client library for java?

标题说明了一切。

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

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

提前致谢!

JSR 356(Java API for JavaSocket)是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"));

您可以在Tyrus用户指南中查看Client Endpoint章节以获取更多详细信息。

Jetty有WebSocket Client API

Jetty WebSocket客户端API

为了将来搜索结果的完整性,JavaSE 11 现在也支持 WebSocket,在java.net.http package中。

尽管我承认到目前为止我只找到基本的文档和简单的示例。 这在实施一个完整、健壮的解决方案方面还有一些不足之处。 除其他外,似乎需要对 Java 并发有一个体面的理解。

这里有一点:需要帮助简单的纯 Java 11 WebSocket 客户端示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM