编写客户端以在 spring 启动时连接到 websocket
Writing a client to connect to websocket in spring boot
我正在尝试使用 spring 启动来制作基于 websocketed 的 server/client 应用程序。
服务器接受一个套接字连接,然后当它从客户端收到一条文本消息时,它将处理它,然后 return 一些数据。服务器有一个 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 服务器。
我相信这就是您要找的东西
这是一个类似的服务器端代码..
这是客户端。使用 org.springframework.web.socket.client.standard.StandardWebSocketClient 和一些其他配置。
我相信你能想出剩下的;)
干杯
我正在尝试使用 spring 启动来制作基于 websocketed 的 server/client 应用程序。
服务器接受一个套接字连接,然后当它从客户端收到一条文本消息时,它将处理它,然后 return 一些数据。服务器有一个 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 服务器。
我相信这就是您要找的东西
这是一个类似的服务器端代码..
这是客户端。使用 org.springframework.web.socket.client.standard.StandardWebSocketClient 和一些其他配置。
我相信你能想出剩下的;)
干杯