@xuda.io/xuda-worker-bundle-min 1.3.516 → 1.3.518

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.
Files changed (2) hide show
  1. package/index.js +64 -4
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1132,18 +1132,68 @@ func.common.perform_rpi_request = async function (
1132
1132
 
1133
1133
  try {
1134
1134
  if (
1135
- RUNTIME_SERVER_WEBSOCKET &&
1136
- RUNTIME_SERVER_WEBSOCKET_CONNECTED &&
1135
+ // RUNTIME_SERVER_WEBSOCKET &&
1136
+ // RUNTIME_SERVER_WEBSOCKET_CONNECTED &&
1137
1137
  SESSION_OBJ?.[SESSION_ID]?.rpi_http_methods?.includes(serviceP)
1138
1138
  ) {
1139
- return await ws();
1139
+ // return await ws();
1140
+ return await func.common.get_data_from_websocket(
1141
+ SESSION_ID,
1142
+ serviceP,
1143
+ data
1144
+ );
1140
1145
  } else {
1141
- throw new Error("fail to fetch from ws websocket inactive");
1146
+ throw new Error("method not found in rpi_http_methods");
1142
1147
  }
1143
1148
  } catch (err) {
1144
1149
  return await http();
1145
1150
  }
1146
1151
  };
1152
+
1153
+ func.common.get_data_from_websocket = async function (
1154
+ SESSION_ID,
1155
+ serviceP,
1156
+ data
1157
+ ) {
1158
+ var _session = SESSION_OBJ[SESSION_ID];
1159
+ return new Promise(function (resolve, reject) {
1160
+ glb.websocket_queue_num++;
1161
+ const obj = {
1162
+ service: serviceP,
1163
+ data,
1164
+ websocket_queue_num: glb.websocket_queue_num,
1165
+ };
1166
+ if (glb.IS_WORKER) {
1167
+ func.utils.post_back_to_client(
1168
+ SESSION_ID,
1169
+ "get_dbs_data_from_websocket",
1170
+ _session.worker_id,
1171
+ obj
1172
+ );
1173
+
1174
+ self.addEventListener(
1175
+ "get_ws_data_worker_" + glb.websocket_queue_num,
1176
+ (event) => {
1177
+ resolve(event.detail.data);
1178
+ }
1179
+ );
1180
+ // throw new Error("not ready yet");
1181
+ } else {
1182
+ if (RUNTIME_SERVER_WEBSOCKET && RUNTIME_SERVER_WEBSOCKET_CONNECTED) {
1183
+ RUNTIME_SERVER_WEBSOCKET.emit("message", obj);
1184
+ $("body").on(
1185
+ "get_ws_data_response_" + glb.websocket_queue_num,
1186
+ (e, data) => {
1187
+ resolve(data.data);
1188
+ $("body").off("get_ws_data_response_" + glb.websocket_queue_num);
1189
+ }
1190
+ );
1191
+ } else {
1192
+ throw new Error("fail to fetch from ws websocket inactive");
1193
+ }
1194
+ }
1195
+ });
1196
+ };
1147
1197
  glb.DEBUG_INFO_OBJ = {};
1148
1198
  // var CONNECTION_ATTEMPTS = 0;
1149
1199
  glb.APP_INFO = {};
@@ -5842,6 +5892,16 @@ func.utils.ws_worker.functions = {
5842
5892
  data: params,
5843
5893
  });
5844
5894
  },
5895
+ return_dbs_data_from_websocket: function (params) {
5896
+ var SESSION_ID = params.session_id;
5897
+ function emitCustomEvent(eventName, detail) {
5898
+ const event = new CustomEvent(eventName, { detail });
5899
+ self.dispatchEvent(event);
5900
+ }
5901
+ emitCustomEvent("get_ws_data_worker_" + params.websocket_queue_num, {
5902
+ data: params.data,
5903
+ });
5904
+ },
5845
5905
  heartbeat: async function (params) {
5846
5906
  var SESSION_ID = params.session_id;
5847
5907
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xuda.io/xuda-worker-bundle-min",
3
- "version": "1.3.516",
3
+ "version": "1.3.518",
4
4
  "description": "xuda framework min",
5
5
  "main": "index.js",
6
6
  "scripts": {