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("当前用户啊名")
WebSocket 推送数据至前端接口实例
最新推荐文章于 2025-03-26 16:23:37 发布