springBoot中 websocket作为客户端使用

代码如下

@ServerEndpoint(value = “/websocket/{rName}/{uName}”)可以作为服务端
@ClientEndpoint 作为客户端使用,
主要有三个类,
URI: 指定服务端的webSocket请求地址
ContainerProvider: 提供一个socket容器
WebSocketContainer: 提供连接方法,并获取session.

@Component
@ClientEndpoint
public class MyWebSocketClient {
  private final static Logger logger = LoggerFactory.getLogger(MyWebSocketClient.class);

  private String uri;

// @Value用在方法上可以注入静态属性
  @Value("${dppz.websocketUrl}")
  public void setUri(String uri) {
    this.uri = uri;
  }

  @OnOpen
  public void onOpen(Session session) {}
  @OnMessage
  public void onMessage(String message) {
    System.out.println("Client onMessage: " + message);
  }
  @OnClose
  public void onClose() {

  }

  public  void sendMsg(String param) {
    WebSocketContainer container = null;
    try {
      container = ContainerProvider.getWebSocketContainer();
      URI r = URI.create(uri);
      Session session = container.connectToServer(MyWebSocketClient.class, r);
      session.getBasicRemote().sendText(param);
      session.close();
    } catch (Exception e) {
      logger.error(ExceptionUtil.getDeatilExceptionInfo(e));
    }
  }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Spring Boot和WebSocket来创建WebSocket客户端。下面是一个简单的示例代码: 首先,确保你的Spring Boot项目已经添加了WebSocket的依赖。 在你的代码,创建一个WebSocket客户端类,可以使用`WebSocketClient`接口的实现类`StandardWebSocketClient`。然后,通过调用`doHandshake()`方法来连接到WebSocket服务器。 ```java import org.springframework.web.socket.client.WebSocketClient; import org.springframework.web.socket.client.standard.StandardWebSocketClient; import org.springframework.web.socket.client.WebSocketConnectionManager; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.handler.TextWebSocketHandler; public class WebSocketClientExample { public static void main(String[] args) { WebSocketClient webSocketClient = new StandardWebSocketClient(); WebSocketConnectionManager connectionManager = new WebSocketConnectionManager(webSocketClient, new MyWebSocketHandler(), "ws://localhost:8080/websocket-endpoint"); connectionManager.start(); } } class MyWebSocketHandler extends TextWebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { System.out.println("Connected to WebSocket server!"); // 发送消息到服务器 session.sendMessage(new TextMessage("Hello, Server!")); } @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { System.out.println("Received message: " + message.getPayload()); // 关闭连接 session.close(); } } ``` 在上述代码,`MyWebSocketHandler`是一个自定义的处理器,继承自`TextWebSocketHandler`。你可以根据自己的需求重写其的方法来处理连接建立、接收消息等事件。 在`WebSocketConnectionManager`的构造函数,需要传入一个WebSocket客户端实例、自定义的处理器和WebSocket服务器的URL。你可以将`ws://localhost:8080/websocket-endpoint`替换为你实际的WebSocket服务器URL。 运行上述代码后,客户端将会连接到WebSocket服务器,并发送一条消息。当从服务器接收到消息时,将会打印出来,并关闭连接。 希望对你有所帮助!如有问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值