Blame view

src/com/fh/plugin/websocketOnline/OnlineChatServerPool.java 2.43 KB
ad5081d3   孙向锦   初始化项目
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
  package com.fh.plugin.websocketOnline;
  
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  import java.util.Set;
  
  import org.java_websocket.WebSocket;
  
  /**
   * 在线管理
   * @author FH
   * QQ 313596790
   * 2015-5-25
   */
  public class OnlineChatServerPool {
  
  	private static final Map<WebSocket,String> userconnections = new HashMap<WebSocket,String>();
  	
  	private static WebSocket fhadmin = null;;
  	
  	/**
  	 * 获取用户名
  	 * @param session
  	 */
  	public static String getUserByKey(WebSocket conn){
  		return userconnections.get(conn);
  	}
  	
  	/**
  	 * 获取在线总数
  	 * @param 
  	 */
  	public static int getUserCount(){
  		return userconnections.size();
  	}
  	
  	/**
  	 * 获取WebSocket
  	 * @param user
  	 */
  	public static WebSocket getWebSocketByUser(String user){
  		Set<WebSocket> keySet = userconnections.keySet();
  		synchronized (keySet) {
  			for (WebSocket conn : keySet) {
  				String cuser = userconnections.get(conn);
  				if(cuser.equals(user)){
  					return conn;
  				}
  			}
  		}
  		return null;
  	}
  	
  	/**
  	 * 向连接池中添加连接
  	 * @param inbound
  	 */
  	public static void addUser(String user, WebSocket conn){
  		userconnections.put(conn,user);	//添加连接
  	}
  	
  	/**
  	 * 获取所有的在线用户
  	 * @return
  	 */
  	public static Collection<String> getOnlineUser(){
  		List<String> setUsers = new ArrayList<String>();
  		Collection<String> setUser = userconnections.values();
  		for(String u:setUser){
  			setUsers.add(u);
  		}
  		return setUsers;
  	}
  	
  	/**
  	 * 移除连接池中的连接
  	 * @param inbound
  	 */
  	public static boolean removeUser(WebSocket conn){
  		if(userconnections.containsKey(conn)){
  			userconnections.remove(conn);	//移除连接
  			return true;
  		}else{
  			return false;
  		}
  	}
  	
  	/**
  	 * 向特定的用户发送数据
  	 * @param user
  	 * @param message
  	 */
  	public static void sendMessageToUser(WebSocket conn,String message){
  		if(null != conn){
  			conn.send(message);
  		}
  	}
  	
  	/**
  	 * 向所有的用户发送消息
  	 * @param message
  	 */
  	public static void sendMessage(String message){
  		Set<WebSocket> keySet = userconnections.keySet();
  		synchronized (keySet) {
  			for (WebSocket conn : keySet) {
  				String user = userconnections.get(conn);
  				if(user != null){
  					conn.send(message);
  				}
  			}
  		}
  	}
  
  	public static WebSocket getFhadmin() {
  		return fhadmin;
  	}
  
  	public static void setFhadmin(WebSocket fhadmin) {
  		OnlineChatServerPool.fhadmin = fhadmin;
  	}
  }