This commit is contained in:
@@ -54,9 +54,9 @@ public abstract class WebSocketNode {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract List<String> getOnlineRemoteAddresses(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid);
|
protected abstract List<String> getOnlineRemoteAddresses(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid);
|
||||||
|
|
||||||
protected abstract int sendMessage(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid, boolean recent, Serializable message, boolean last);
|
protected abstract int sendMessage(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid, boolean recent, Serializable message, boolean last);
|
||||||
|
|
||||||
protected abstract void connect(Serializable groupid, InetSocketAddress addr);
|
protected abstract void connect(Serializable groupid, InetSocketAddress addr);
|
||||||
@@ -64,6 +64,10 @@ public abstract class WebSocketNode {
|
|||||||
protected abstract void disconnect(Serializable groupid, InetSocketAddress addr);
|
protected abstract void disconnect(Serializable groupid, InetSocketAddress addr);
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------
|
||||||
|
protected List<String> remoteOnlineRemoteAddresses(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid) {
|
||||||
|
return remoteNode.getOnlineRemoteAddresses(targetAddress, groupid);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取在线用户的节点地址列表
|
* 获取在线用户的节点地址列表
|
||||||
*
|
*
|
||||||
@@ -73,25 +77,25 @@ public abstract class WebSocketNode {
|
|||||||
public Collection<InetSocketAddress> getOnlineNodes(final Serializable groupid) {
|
public Collection<InetSocketAddress> getOnlineNodes(final Serializable groupid) {
|
||||||
return source.getCollection(groupid);
|
return source.getCollection(groupid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取在线用户的详细连接信息
|
* 获取在线用户的详细连接信息
|
||||||
*
|
*
|
||||||
* @param groupid
|
* @param groupid
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Map<InetSocketAddress, List<String>> getOnlineRemoteAddress(final Serializable groupid) {
|
public Map<InetSocketAddress, List<String>> getOnlineRemoteAddress(final Serializable groupid) {
|
||||||
Collection<InetSocketAddress> nodes = getOnlineNodes(groupid);
|
Collection<InetSocketAddress> nodes = getOnlineNodes(groupid);
|
||||||
if(nodes == null) return null;
|
if (nodes == null) return null;
|
||||||
final Map<InetSocketAddress, List<String>> map = new HashMap();
|
final Map<InetSocketAddress, List<String>> map = new HashMap();
|
||||||
for(InetSocketAddress nodeAddress : nodes) {
|
for (InetSocketAddress nodeAddress : nodes) {
|
||||||
List<String> list = getOnlineRemoteAddresses(nodeAddress, groupid);
|
List<String> list = getOnlineRemoteAddresses(nodeAddress, groupid);
|
||||||
if(list == null) list = new ArrayList();
|
if (list == null) list = new ArrayList();
|
||||||
map.put(nodeAddress, list);
|
map.put(nodeAddress, list);
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void connect(Serializable groupid, String engineid) {
|
public final void connect(Serializable groupid, String engineid) {
|
||||||
if (finest) logger.finest(localSncpAddress + " receive websocket connect event (" + groupid + " on " + engineid + ").");
|
if (finest) logger.finest(localSncpAddress + " receive websocket connect event (" + groupid + " on " + engineid + ").");
|
||||||
Set<String> engineids = localNodes.get(groupid);
|
Set<String> engineids = localNodes.get(groupid);
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class WebSocketNodeService extends WebSocketNode implements Service {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getOnlineRemoteAddresses(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid) {
|
public List<String> getOnlineRemoteAddresses(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid) {
|
||||||
if (localSncpAddress == null || !localSncpAddress.equals(targetAddress)) return ((WebSocketNodeService) remoteNode).getOnlineRemoteAddresses(targetAddress, groupid);
|
if (localSncpAddress == null || !localSncpAddress.equals(targetAddress)) return remoteOnlineRemoteAddresses(targetAddress, groupid);
|
||||||
final Set<String> engineids = localNodes.get(groupid);
|
final Set<String> engineids = localNodes.get(groupid);
|
||||||
if (engineids == null || engineids.isEmpty()) return null;
|
if (engineids == null || engineids.isEmpty()) return null;
|
||||||
final List<String> rs = new ArrayList<>();
|
final List<String> rs = new ArrayList<>();
|
||||||
|
|||||||
Reference in New Issue
Block a user