SpringMvc-WebSocket客户端

本文介绍了一个简单的WebSocket客户端实现方法,包括客户端类定义及如何通过Java API建立连接并发送消息。该客户端能够处理连接打开、接收消息、错误处理及关闭等基本事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.客户端

@ClientEndpoint
public class WebSocketClient extends Endpoint {
	private static Logger log = LoggerFactory.getLogger(WebSocketClient .class);
	private Object data= null;

	@OnOpen
	@Override
	public void onOpen(Session session, EndpointConfig config) {
		data = (Object ) config.getUserProperties().get("data");
 		log.info("连接成功 , 任务Id:" + task.getControlTaskNo());

		session.addMessageHandler(new MessageHandler.Whole<String>() {
			/** * 有返回信息时触发 * */
			@OnMessage
			@Override
			public void onMessage(String message) {
				log.info("返回信息:" + message);
			}
		});
	}

	@OnError
	@Override
	public void onError(Session session, Throwable t) {
		log.error("失败:" + t.getMessage());
	}

	@OnClose
	@Override
	public 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());
		}
		

	}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值