Spring Web 套接字 Java 客户端

Posted

技术标签:

【中文标题】Spring Web 套接字 Java 客户端【英文标题】:Spring Web Socket Java Client 【发布时间】:2014-09-16 11:17:16 【问题描述】:

如何编写基于 Java 的 Spring Web Socket (STOMP) 客户端。就像在 Spring 中一样,我们只有使用 stompJS 提供基于 javascript 的客户端,但是如果我们需要一个 java 客户端,我们应该如何实现它?

【问题讨论】:

【参考方案1】:

Spring 4.1 引入了SockJs Java Client,这对于服务器到服务器的通信和性能测试非常有用。它不附带 Stomp 客户端(这肯定在路线图中),但您可以查看已经实现的 tests in the sample app。看来这就是你要找的东西。

2015 年 9 月 8 日更新:

Spring 4.2 有一个 STOMP Java 客户端,可以与 SockJS Java 客户端一起使用。更多:https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/htmlsingle/#websocket-stomp-client

【讨论】:

我得到了cannot be resolved to a type。我已经添加了所有的罐子。我已经从 Gradle 本地存储库中复制了所有 jar。我已经在所有罐子中搜索了这些类的存在,但我没有得到它们。我觉得所有的类都被重命名了,包也被改变了。这个 URL snag.gy/Y9QCy.jpg 是我编码的截图。而且我没有从 git repo 中的代码中得到任何想法。请你给我一个示例代码。 看来你没有使用 Spring 4.1,请检查版本是 4.1.0.RELEASE。这些类所在的包是:org.springframework.web.socket.sockjs.client No No. 我用过spring web socket example Gradle 正在下载的最新的 spring。为了将其保留为服务器,我创建了一个单独的项目作为客户端,其中包含您建议的代码,并将该示例项目中的所有 jar 添加到此客户端项目中。 这表明您使用的是 Spring 4.0.7,因为您依赖于 Spring Boot 1.1.6,覆盖 spring 版本以使用 4.1.0.RELEASE 嘿,现在我使用 4.1 版本,除了StandardWebSocketClient()MyWebSocketHandler() 之外,所有编译错误都消失了。还告诉如何将教程中的 index.html(一个 js 客户端)完全替换为这个 java 客户端。【参考方案2】:

我会寻找 Java 中的 websocket 客户端并以此为基础。看来 Jetty 有 a websocket client api 和 too tall nate。

【讨论】:

普通网络套接字没有订阅选项。

以上是关于Spring Web 套接字 Java 客户端的主要内容,如果未能解决你的问题,请参考以下文章

从 Spring Boot Web 应用程序中的 Web 套接字获取数据

如何在 Java 中为 Web 套接字客户端(Jetty)设置最大缓冲区大小

Web 套接字项删除约定

Web 服务与 TCP/IP 套接字 (Java) + SQL 连接

Java Web 实战 15 - 计算机网络之网络编程套接字

如何在 Spring Boot 客户端应用程序中创建不共享底层网络连接的套接字