该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
将ws://改为wss://
@ServerEndpoint(value = "/ws/{id}")
@Component
public class WebSocket {
public static final String DEPTHSTREAM = "DEPTHSTREAM";
public static final String TRADESTREAM = "TRADESTREAM";
public static final String ORDER = "ORDER";
private String ownStreamType;//本类连接的类型
private String uniqueSymbol;
private static int onlineCount = 0;
private static ConcurrentHashMap personalInformationMap =null;
private Session session;
static {
personalInformationMap=new ConcurrentHashMap<>();
}
@OnOpen
public void onOpen(@PathParam("id") String id, Session session) {
addOnlineCount();
if(session!=null&&session.isOpen()&&id!=null){
this.session = session;
this.uniqueSymbol=id;
}else {
onClose();
}
System.out.println(id);
if(personalInformationMap.containsKey(uniqueSymbol)){
personalInformationMap.get(uniqueSymbol).onClose();
}
personalInformationMap.put(uniqueSymbol,this);
System.out.println("有新连接加入!当前在线人数为" + getOnlineCount());
}
@OnClose
public void onClose() {
if(uniqueSymbol!=null) {
personalInformationMap.remove(uniqueSymbol);
subOnlineCount();
}
System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount());
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("来自客户端的消息:" + message);
}
@OnError
public void onError(Session session, Throwable error) {
System.out.println("发生错误");
error.printStackTrace();
}
public void sendMessage(String message)
throws IOException {
this.session.getBasicRemote().sendText(message);
}
public static synchronized int getOnlineCount() {
return onlineCount;
}
public static synchronized void addOnlineCount() {
onlineCount += 1;
}
public static synchronized void subOnlineCount() {
onlineCount -= 1;
}
public String getOwnStreamType() {
return ownStreamType;
}
public Session getSession() {
return session;
}
public static ConcurrentHashMap getPersonalInformationMap() {
return personalInformationMap;
}
}