This commit is contained in:
@@ -33,7 +33,7 @@ public abstract class WebSocketNode {
|
|||||||
@Resource(name = Application.RESNAME_SERVER_ADDR)
|
@Resource(name = Application.RESNAME_SERVER_ADDR)
|
||||||
protected InetSocketAddress localSncpAddress; //为SncpServer的服务address
|
protected InetSocketAddress localSncpAddress; //为SncpServer的服务address
|
||||||
|
|
||||||
@DynRemote
|
@RpcRemote
|
||||||
protected WebSocketNode remoteNode;
|
protected WebSocketNode remoteNode;
|
||||||
|
|
||||||
//存放所有用户分布在节点上的队列信息,Set<InetSocketAddress> 为 sncpnode 的集合
|
//存放所有用户分布在节点上的队列信息,Set<InetSocketAddress> 为 sncpnode 的集合
|
||||||
@@ -58,16 +58,16 @@ public abstract class WebSocketNode {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract List<String> getOnlineRemoteAddresses(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid);
|
protected abstract List<String> getOnlineRemoteAddresses(@RpcTargetAddress InetSocketAddress targetAddress, Serializable groupid);
|
||||||
|
|
||||||
protected abstract int sendMessage(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid, boolean recent, Serializable message, boolean last);
|
protected abstract int sendMessage(@RpcTargetAddress 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);
|
||||||
|
|
||||||
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) {
|
protected List<String> remoteOnlineRemoteAddresses(@RpcTargetAddress InetSocketAddress targetAddress, Serializable groupid) {
|
||||||
if (remoteNode == null) return null;
|
if (remoteNode == null) return null;
|
||||||
try {
|
try {
|
||||||
return remoteNode.getOnlineRemoteAddresses(targetAddress, groupid);
|
return remoteNode.getOnlineRemoteAddresses(targetAddress, groupid);
|
||||||
|
|||||||
@@ -749,7 +749,7 @@ public abstract class Sncp {
|
|||||||
for (Field field : loop.getDeclaredFields()) {
|
for (Field field : loop.getDeclaredFields()) {
|
||||||
int mod = field.getModifiers();
|
int mod = field.getModifiers();
|
||||||
if (Modifier.isFinal(mod) || Modifier.isStatic(mod)) continue;
|
if (Modifier.isFinal(mod) || Modifier.isStatic(mod)) continue;
|
||||||
if (field.getAnnotation(DynRemote.class) == null) continue;
|
if (field.getAnnotation(RpcRemote.class) == null) continue;
|
||||||
if (!field.getType().isAssignableFrom(newClazz)) continue;
|
if (!field.getType().isAssignableFrom(newClazz)) continue;
|
||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
if (remoteTransport == null) {
|
if (remoteTransport == null) {
|
||||||
|
|||||||
@@ -69,9 +69,9 @@ public final class SncpClient {
|
|||||||
for (int i = 0; i < anns.length; i++) {
|
for (int i = 0; i < anns.length; i++) {
|
||||||
if (anns[i].length > 0) {
|
if (anns[i].length > 0) {
|
||||||
for (Annotation ann : anns[i]) {
|
for (Annotation ann : anns[i]) {
|
||||||
if (ann.annotationType() == DynTargetAddress.class && SocketAddress.class.isAssignableFrom(params[i])) {
|
if (ann.annotationType() == RpcTargetAddress.class && SocketAddress.class.isAssignableFrom(params[i])) {
|
||||||
targetAddrIndex = i;
|
targetAddrIndex = i;
|
||||||
} else if (ann.annotationType() == DynSourceAddress.class && SocketAddress.class.isAssignableFrom(params[i])) {
|
} else if (ann.annotationType() == RpcSourceAddress.class && SocketAddress.class.isAssignableFrom(params[i])) {
|
||||||
sourceAddrIndex = i;
|
sourceAddrIndex = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,6 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
|||||||
@Documented
|
@Documented
|
||||||
@Target({FIELD})
|
@Target({FIELD})
|
||||||
@Retention(RUNTIME)
|
@Retention(RUNTIME)
|
||||||
public @interface DynRemote {
|
public @interface RpcRemote {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -20,6 +20,6 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
|||||||
@Documented
|
@Documented
|
||||||
@Target({PARAMETER})
|
@Target({PARAMETER})
|
||||||
@Retention(RUNTIME)
|
@Retention(RUNTIME)
|
||||||
public @interface DynSourceAddress {
|
public @interface RpcSourceAddress {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -20,6 +20,6 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
|||||||
@Documented
|
@Documented
|
||||||
@Target({PARAMETER})
|
@Target({PARAMETER})
|
||||||
@Retention(RUNTIME)
|
@Retention(RUNTIME)
|
||||||
public @interface DynTargetAddress {
|
public @interface RpcTargetAddress {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ public class WebSocketNodeService extends WebSocketNode implements Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getOnlineRemoteAddresses(@DynTargetAddress InetSocketAddress targetAddress, Serializable groupid) {
|
public List<String> getOnlineRemoteAddresses(@RpcTargetAddress InetSocketAddress targetAddress, Serializable groupid) {
|
||||||
if (localSncpAddress == null || !localSncpAddress.equals(targetAddress)) return remoteOnlineRemoteAddresses(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;
|
||||||
@@ -49,7 +49,7 @@ public class WebSocketNodeService extends WebSocketNode implements Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int sendMessage(@DynTargetAddress InetSocketAddress addr, Serializable groupid, boolean recent, Serializable message, boolean last) {
|
public int sendMessage(@RpcTargetAddress InetSocketAddress addr, Serializable groupid, boolean recent, Serializable message, boolean last) {
|
||||||
final Set<String> engineids = localNodes.get(groupid);
|
final Set<String> engineids = localNodes.get(groupid);
|
||||||
if (engineids == null || engineids.isEmpty()) return RETCODE_GROUP_EMPTY;
|
if (engineids == null || engineids.isEmpty()) return RETCODE_GROUP_EMPTY;
|
||||||
int code = RETCODE_GROUP_EMPTY;
|
int code = RETCODE_GROUP_EMPTY;
|
||||||
|
|||||||
Reference in New Issue
Block a user