Browse Source

Merge pull request #595 in DESIGN/design from ~NEIL/design:feature/10.0 to feature/10.0

* commit '5ed190d5e0159c12f00875a8261bcb5472298177':
  无JIRA任务  websocket端口可以支持设置多个可选端口,让单机多节点集群可用
research/10.0
neil 6 years ago
parent
commit
85a82c2019
  1. 32
      designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java

32
designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java

@ -68,8 +68,8 @@ public class DesignerSocketIO {
return; return;
} }
try { try {
String uri = getSocketUri(current); String[] uri = getSocketUri(current);
socketIO = Optional.of(IO.socket(new URI(uri))); socketIO = Optional.of(IO.socket(new URI(uri[0])));
socketIO.get().on(WorkspaceConstants.WS_LOGRECORD, printLog); socketIO.get().on(WorkspaceConstants.WS_LOGRECORD, printLog);
socketIO.get().on(WorkspaceConstants.CONFIG_MODIFY, new Emitter.Listener() { socketIO.get().on(WorkspaceConstants.CONFIG_MODIFY, new Emitter.Listener() {
@Override @Override
@ -109,19 +109,23 @@ public class DesignerSocketIO {
} }
} }
private static String getSocketUri(Workspace current) throws IOException { private static String[] getSocketUri(Workspace current) throws IOException {
URL url = new URL(current.getPath()); URL url = new URL(current.getPath());
int port = WorkContext.getCurrent().get(SocketInfoOperator.class).getPort(); Integer[] ports = WorkContext.getCurrent().get(SocketInfoOperator.class).getPort();
WorkspaceConnection connection = WorkContext.getCurrent().getConnection(); WorkspaceConnection connection = WorkContext.getCurrent().getConnection();
return String.format("%s://%s:%s%s?%s=%s&%s=%s", String[] result = new String[ports.length];
url.getProtocol(), for (int i = 0; i < ports.length; i++ ) {
url.getHost(), result[i] = String.format("%s://%s:%s%s?%s=%s&%s=%s",
port, url.getProtocol(),
WorkspaceConstants.WS_NAMESPACE, url.getHost(),
DecisionServiceConstants.WEB_SOCKET_TOKEN_NAME, ports[i],
connection.getToken(), WorkspaceConstants.WS_NAMESPACE,
RemoteDesignConstants.USER_LOCK_ID, DecisionServiceConstants.WEB_SOCKET_TOKEN_NAME,
connection.getId() connection.getToken(),
); RemoteDesignConstants.USER_LOCK_ID,
connection.getId());
}
return result;
} }
} }

Loading…
Cancel
Save