@cadenza.io/service 2.3.1 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1899,12 +1899,23 @@ var SocketController = class _SocketController {
1899
1899
  CadenzaService.createMetaTask(
1900
1900
  "Connect to socket server",
1901
1901
  (ctx) => {
1902
- const { serviceName, serviceAddress, servicePort, protocol } = ctx;
1902
+ const {
1903
+ serviceInstanceId,
1904
+ communicationTypes,
1905
+ serviceName,
1906
+ serviceAddress,
1907
+ servicePort,
1908
+ protocol
1909
+ } = ctx;
1903
1910
  const socketProtocol = protocol === "https" ? "wss" : "ws";
1904
1911
  const port = protocol === "https" ? 443 : servicePort;
1905
1912
  const URL = `${socketProtocol}://${serviceAddress}:${port}`;
1906
1913
  const fetchId = `${serviceAddress}_${port}`;
1907
1914
  let handshake = false;
1915
+ if (CadenzaService.get(`Socket handshake with ${URL}`)) {
1916
+ console.error("Socket client already exists", URL);
1917
+ return;
1918
+ }
1908
1919
  const socket = (0, import_socket2.io)(URL, {
1909
1920
  reconnection: true,
1910
1921
  reconnectionAttempts: 5,
@@ -1992,7 +2003,7 @@ var SocketController = class _SocketController {
1992
2003
  { error: err.message, serviceName, socketId: socket.id, URL },
1993
2004
  "error"
1994
2005
  );
1995
- CadenzaService.emit("meta.socket_client.connect_error", err);
2006
+ CadenzaService.emit(`meta.socket_client.connect_error:${fetchId}`, err);
1996
2007
  });
1997
2008
  socket.on("reconnect_attempt", (attempt) => {
1998
2009
  CadenzaService.log(`Reconnect attempt: ${attempt}`);
@@ -2033,8 +2044,8 @@ var SocketController = class _SocketController {
2033
2044
  handshake = false;
2034
2045
  });
2035
2046
  socket.connect();
2036
- CadenzaService.createEphemeralMetaTask(
2037
- `Handshake with ${URL}`,
2047
+ const handshakeTask = CadenzaService.createMetaTask(
2048
+ `Socket handshake with ${URL}`,
2038
2049
  async () => {
2039
2050
  if (handshake) return;
2040
2051
  handshake = true;
@@ -2068,7 +2079,7 @@ var SocketController = class _SocketController {
2068
2079
  "Handshakes with socket server"
2069
2080
  ).doOn(`meta.socket_client.connected:${fetchId}`);
2070
2081
  const delegateTask = CadenzaService.createMetaTask(
2071
- `Delegate flow to ${URL}`,
2082
+ `Delegate flow to Socket service ${URL}`,
2072
2083
  async (ctx2, emit) => {
2073
2084
  if (ctx2.__remoteRoutineName === void 0) {
2074
2085
  return;
@@ -2101,7 +2112,7 @@ var SocketController = class _SocketController {
2101
2112
  `Delegate flow to service ${serviceName} with address ${URL}`
2102
2113
  ).doOn(`meta.service_registry.selected_instance_for_socket:${fetchId}`).attachSignal("meta.socket_client.delegated");
2103
2114
  const transmitTask = CadenzaService.createMetaTask(
2104
- `Transmit signal to ${URL}`,
2115
+ `Transmit signal to socket server ${URL}`,
2105
2116
  async (ctx2, emit) => {
2106
2117
  if (ctx2.__signalName === void 0) {
2107
2118
  return;
@@ -2123,16 +2134,31 @@ var SocketController = class _SocketController {
2123
2134
  ).doOn(`meta.service_registry.selected_instance_for_socket:${fetchId}`).attachSignal("meta.socket_client.transmitted");
2124
2135
  CadenzaService.createEphemeralMetaTask(
2125
2136
  `Shutdown SocketClient ${URL}`,
2126
- () => {
2137
+ (ctx2, emit) => {
2138
+ CadenzaService.log("Shutting down socket client", { URL, serviceName });
2127
2139
  socket?.close();
2140
+ handshakeTask.destroy();
2128
2141
  delegateTask.destroy();
2129
2142
  transmitTask.destroy();
2143
+ emit(`meta.fetch.handshake_requested:${fetchId}`, {
2144
+ serviceInstanceId,
2145
+ serviceName,
2146
+ communicationTypes,
2147
+ serviceAddress,
2148
+ servicePort,
2149
+ protocol,
2150
+ handshakeData: {
2151
+ instanceId: CadenzaService.serviceRegistry.serviceInstanceId,
2152
+ serviceName: CadenzaService.serviceRegistry.serviceName
2153
+ }
2154
+ });
2130
2155
  },
2131
2156
  "Shuts down the socket client"
2132
2157
  ).doOn(
2133
2158
  `meta.socket_shutdown_requested:${fetchId}`,
2134
2159
  `meta.socket_client.disconnected:${fetchId}`,
2135
- `meta.fetch.handshake_failed:${fetchId}`
2160
+ `meta.fetch.handshake_failed:${fetchId}`,
2161
+ `meta.socket_client.connect_error:${fetchId}`
2136
2162
  ).emits("meta.socket_client_shutdown_complete");
2137
2163
  return true;
2138
2164
  },