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;
public class WsUtil {
private static final Map<WebSocket, String> wsUserMap = new HashMap<WebSocket, String>();
/**
* 通过websocket连接获取其对应的用户
*
* @param conn
* @return
*/
public static String getUserByWs(WebSocket conn) {
return wsUserMap.get(conn);
}
/**
* 根据userName获取WebSocket,这是一个list,此处取第一个
* 因为有可能多个websocket对应一个userName(但一般是只有一个,因为在close方法中,我们将失效的websocket连接去除了)
*
* @param user
*/
public static WebSocket getWsByUser(String userName) {
Set<WebSocket> keySet = wsUserMap.keySet();
synchronized (keySet) {
for (WebSocket conn : keySet) {
String cuser = wsUserMap.get(conn);
if (cuser.equals(userName)) {
return conn;
}
}
}
return null;
}
/**
* 向连接池中添加连接
*
* @param inbound
*/
public static void addUser(String userName, WebSocket conn) {
wsUserMap.put(conn, userName); // 添加连接
}
/**
* 获取所有连接池中的用户,因为set是不允许重复的,所以可以得到无重复的user数组
*
* @return
*/
public static Collection<String> getOnlineUser() {
List<String> setUsers = new ArrayList<String>();
Collection<String> setUser = wsUserMap.values();
for (String u : setUser) {
setUsers.add(u);
}
return setUsers;
}
/**
* 移除连接池中的连接
*
* @param inbound
*/
public static boolean removeUser(WebSocket conn) {
if (wsUserMap.containsKey(conn)) {
wsUserMap.remove(conn); // 移除连接
return true;
} else {
return false;
}
}
/**
* 向特定的用户发送数据
*
* @param user
* @param message
*/
public static void sendMessageToUser(WebSocket conn, String message) {
if (null != conn && null != wsUserMap.get(conn)) {
conn.send(message);
}
}
/**
* 向所有的用户发送消息
*
* @param message
*/
public static void sendMessageToAll(String message) {
Set<WebSocket> keySet = wsUserMap.keySet();
synchronized (keySet) {
for (WebSocket conn : keySet) {
String user = wsUserMap.get(conn);
if (user != null) {
conn.send(message);
}
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
JS使用WebSocket实现与Java图形界面(swing)进行通信
共18个文件
xml:8个
class:3个
java:3个
需积分: 49 26 下载量 140 浏览量
2018-09-12
18:20:46
上传
评论 2
收藏 103KB RAR 举报
温馨提示
JS使用WebSocket实现与Java原生图形界面(swing)进行通信,以下为源码,介绍在这个地址里面,https://blog.csdn.net/qq_21891743/article/details/82665510。
资源推荐
资源详情
资源评论
收起资源包目录
WebSocket.rar (18个子文件)
WebSocket
WebSocket.iml 512B
src
WsUtil.java 3KB
WsServer.java 2KB
Main.java 306B
lib
Java-WebSocket-1.3.0.jar 101KB
.idea
libraries
Java_WebSocket_1_3_0.xml 238B
misc.xml 489B
compiler.xml 734B
uiDesigner.xml 9KB
workspace.xml 10KB
description.html 97B
encodings.xml 171B
modules.xml 265B
vcs.xml 173B
WebSocket.html 812B
out
production
WebSocket
WsUtil.class 3KB
Main.class 549B
WsServer.class 2KB
共 18 条
- 1
资源评论
黑夜开发者
- 粉丝: 2w+
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功