This commit is contained in:
@@ -38,6 +38,7 @@ public final class WebSocketEngine {
|
|||||||
if (group == null) {
|
if (group == null) {
|
||||||
group = new WebSocketGroup(socket.groupid);
|
group = new WebSocketGroup(socket.groupid);
|
||||||
containers.put(socket.groupid, group);
|
containers.put(socket.groupid, group);
|
||||||
|
group.recentWebSocket = socket;
|
||||||
}
|
}
|
||||||
group.add(socket);
|
group.add(socket);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ public final class WebSocketGroup {
|
|||||||
|
|
||||||
private final Serializable groupid;
|
private final Serializable groupid;
|
||||||
|
|
||||||
|
WebSocket recentWebSocket;
|
||||||
|
|
||||||
private final List<WebSocket> list = new CopyOnWriteArrayList<>();
|
private final List<WebSocket> list = new CopyOnWriteArrayList<>();
|
||||||
|
|
||||||
private final Map<String, Object> attributes = new HashMap<>();
|
private final Map<String, Object> attributes = new HashMap<>();
|
||||||
@@ -47,6 +49,15 @@ public final class WebSocketGroup {
|
|||||||
return list.isEmpty();
|
return list.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最近发送消息的WebSocket
|
||||||
|
* <p>
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public final WebSocket getRecentWebSocket() {
|
||||||
|
return recentWebSocket;
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public final <T> T getAttribute(String name) {
|
public final <T> T getAttribute(String name) {
|
||||||
return (T) attributes.get(name);
|
return (T) attributes.get(name);
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ public class WebSocketRunner implements Runnable {
|
|||||||
readBuffer.clear();
|
readBuffer.clear();
|
||||||
channel.read(readBuffer, null, this);
|
channel.read(readBuffer, null, this);
|
||||||
}
|
}
|
||||||
|
webSocket.group.recentWebSocket = webSocket;
|
||||||
if (packet.type == PacketType.TEXT) {
|
if (packet.type == PacketType.TEXT) {
|
||||||
webSocket.onMessage(packet.getPayload());
|
webSocket.onMessage(packet.getPayload());
|
||||||
} else if (packet.type == PacketType.BINARY) {
|
} else if (packet.type == PacketType.BINARY) {
|
||||||
|
|||||||
Reference in New Issue
Block a user