加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – 编写客户端以在spring boot中连接到websocket

发布时间:2020-12-15 01:33:20 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用spring boot创建基于websocketed的服务器/客户端应用程序. 服务器接受套接字连接,然后当它收到来自客户端的文本消息时,它将处理它,然后返回一些数据.服务器有一个websocket处理程序,可以正确处理请求. public class DataWebSocketHandler exte

我正在尝试使用spring boot创建基于websocketed的服务器/客户端应用程序.

服务器接受套接字连接,然后当它收到来自客户端的文本消息时,它将处理它,然后返回一些数据.服务器有一个websocket处理程序,可以正确处理请求.

public class DataWebSocketHandler extends TextWebSocketHandler {

private static Logger logger = LoggerFactory.getLogger(DataWebSocketHandler.class);

private final DataService dataService;

@Autowired
public DataWebSocketHandler(DataService dataService) {
    this.dataService = dataService;
}

@Override
public void afterConnectionEstablished(WebSocketSession session) {
    logger.debug("Opened new session in instance " + this);
}

@Override
public void handleTextMessage(WebSocketSession session,TextMessage message)
        throws Exception {
    byte[] payload = this.dataService.getDataBytes(message.getPayload());
    session.sendMessage(new BinaryMessage(payload));
}

@Override
public void handleTransportError(WebSocketSession session,Throwable exception)
        throws Exception {
    session.close(CloseStatus.SERVER_ERROR);
}

}

并注册

@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
    registry.addHandler(dataWebSocketHandler(),"/data").withSockJS();
}

我的问题是,我不知道如何编写一个可以连接到服务器的客户端(假设我正确编写了服务器),并通过扩展如何发送消息以及如何在客户端接收该数据.

我没有找到这样的例子,但有很多地方写的websocket广播给订阅套接字的所有客户端,我不想要.

服务器使用嵌入式tomcat服务器.

最佳答案
我相信这就是你要找的东西

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-websocket-jetty/src/main/java/samples/websocket/jetty/echo

这是一个类似的服务器端代码..

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/SampleWebSocketsApplicationTests.java

这里是客户端..使用org.springframework.web.socket.client.standard.StandardWebSocketClient和其他一些配置.

我相信你可以弄明白其余的;)

干杯

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读