WebSocket 推送数据至前端接口实例

本文详细讲解如何使用WebSocket技术从后端实时推送到前端的数据接口实例,包括前端JavaScript的调用方法和具体实现步骤,帮助理解WebSocket在实时通信中的应用。

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

package com.xxxx.jcbigdata.websocket;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArraySet;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSONObject;
import com.xxxx.jcbigdata.service.real.RealAnalyzeService;
import com.xxxx.jcbigdata.util.DateUtil;
import com.xxxx.jcbigdata.util.RedisUtil;
import redis.clients.jedis.JedisCluster;
@ServerEndpoint("/websocket_JGshouye")
@Component
public class JGShouyeWebSocket {
	private static int onlineCount = 0;
	// private int curr_baojing_count = 0;
	int curr_lenth = 0;
	private static CopyOnWriteArraySet<JGShouyeWebSocket> webSocketSet = new CopyOnWriteArraySet<>();
	private static Map<String, JGShouyeWebSocket> webSocketSet_map = new HashMap<String, JGShouyeWebSocket>();
	private Session session;
	JedisCluster jedis;
	@OnOpen
	public void onOpen(Session session) {
		System.out.println("session"+session);
		jedis = RedisUtil.getRedisUtil().getJedis();
		this.session = session;
		webSocketSet.add(this);
	     Map<String, List<String>> requestParameterMap = session.getRequestParameterMap();
	     List<String> list = requestParameterMap.get("username");
		String  username = list.get(0); // 当前用户名
		webSocketSet_map.put(username, this);
		addOnlineCount();
	}
	@OnClose
	public void onClose() {
		try {
			webSocketSet.remove(this);
			subOnlineCount();
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("有一链接关闭!当前在线人数为" + getOnlineCount());
	}
      @OnMessage
	public void onMessage(String message, Session session) {
		Map<String, List<String>> requestParameterMap = session.getRequestParameterMap();
		List<String> list = requestParameterMap.get("username");
		String username = list.get(0); // 当前用户名
		System.out.println("当前用户啊名")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值