SpringMvc-WebSocket客户端

来源:互联网 发布:java变量名命名规则 编辑:程序博客网 时间:2024/06/05 08:09

1.客户端

@ClientEndpointpublic class WebSocketClient extends Endpoint {private static Logger log = LoggerFactory.getLogger(WebSocketClient .class);private Object data= null;@OnOpen@Overridepublic void onOpen(Session session, EndpointConfig config) {data = (Object ) config.getUserProperties().get("data"); log.info("连接成功 , 任务Id:" + task.getControlTaskNo());session.addMessageHandler(new MessageHandler.Whole<String>() {/** * 有返回信息时触发 * */@OnMessage@Overridepublic void onMessage(String message) {log.info("返回信息:" + message);}});}@OnError@Overridepublic void onError(Session session, Throwable t) {log.error("失败:" + t.getMessage());}@OnClose@Overridepublic void onClose(Session session, CloseReason closeReason) {log.info("断开连接");}}

2.调用


public void sendWebSocket(Object data) {String url = "XXX";//websocket服务端地址// 获取WebSocket连接器WebSocketContainer container = ContainerProvider.getWebSocketContainer();Session session = null;try {ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build();clientEndpointConfig.getUserProperties().put("data", data);// 创建会话session = container.connectToServer(WebSocketClient .class, clientEndpointConfig, new URI(url));session.setMaxIdleTimeout(5000);session.getBasicRemote().sendText(data.toString());// 发送信息} catch (Exception e) {log.error("WebSocket创建连接出错:" + e.getMessage());}}


原创粉丝点击