update websocket
This commit is contained in:
parent
6e2096a473
commit
278b63f430
@ -564,7 +564,7 @@ def run_threaded(job_func):
|
|||||||
job_thread.start()
|
job_thread.start()
|
||||||
|
|
||||||
# Schedule the job to run
|
# Schedule the job to run
|
||||||
'''
|
|
||||||
schedule.every().day.at("01:00").do(run_threaded, run_options_bubble_ticker).tag('options_ticker_job')
|
schedule.every().day.at("01:00").do(run_threaded, run_options_bubble_ticker).tag('options_ticker_job')
|
||||||
schedule.every().day.at("02:00").do(run_threaded, run_db_schedule_job)
|
schedule.every().day.at("02:00").do(run_threaded, run_db_schedule_job)
|
||||||
schedule.every().day.at("03:00").do(run_threaded, run_dark_pool)
|
schedule.every().day.at("03:00").do(run_threaded, run_dark_pool)
|
||||||
@ -630,7 +630,7 @@ schedule.every(12).hours.do(run_threaded, run_analyst_rating).tag('analyst_job')
|
|||||||
|
|
||||||
|
|
||||||
schedule.every(2).minutes.do(run_threaded, run_dashboard).tag('dashboard_job')
|
schedule.every(2).minutes.do(run_threaded, run_dashboard).tag('dashboard_job')
|
||||||
'''
|
|
||||||
schedule.every(20).seconds.do(run_threaded, run_if_not_running(run_cron_options_flow, 'options_flow_job')).tag('options_flow_job')
|
schedule.every(20).seconds.do(run_threaded, run_if_not_running(run_cron_options_flow, 'options_flow_job')).tag('options_flow_job')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -311,8 +311,9 @@ fastify.register(async function (fastify) {
|
|||||||
(connection, req) => {
|
(connection, req) => {
|
||||||
let jsonData;
|
let jsonData;
|
||||||
let sendInterval;
|
let sendInterval;
|
||||||
|
let clientIds = [];
|
||||||
|
|
||||||
// Function to send data to the client
|
// Function to send filtered data to the client
|
||||||
const sendData = async () => {
|
const sendData = async () => {
|
||||||
const filePath = path.join(
|
const filePath = path.join(
|
||||||
__dirname,
|
__dirname,
|
||||||
@ -322,7 +323,20 @@ fastify.register(async function (fastify) {
|
|||||||
if (fs.existsSync(filePath)) {
|
if (fs.existsSync(filePath)) {
|
||||||
const fileData = fs.readFileSync(filePath, "utf8");
|
const fileData = fs.readFileSync(filePath, "utf8");
|
||||||
jsonData = JSON.parse(fileData);
|
jsonData = JSON.parse(fileData);
|
||||||
connection.socket.send(JSON.stringify(jsonData));
|
|
||||||
|
// Do nothing if clientIds is empty
|
||||||
|
if (clientIds.length === 0) {
|
||||||
|
console.log("Client IDs list is empty, doing nothing.");
|
||||||
|
return; // Exit function if clientIds is empty
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filter out elements whose ids are not in clientIds
|
||||||
|
const filteredData = jsonData.filter(
|
||||||
|
(item) => !clientIds.includes(item.id)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Send the filtered data back to the client
|
||||||
|
connection.socket.send(JSON.stringify(filteredData));
|
||||||
} else {
|
} else {
|
||||||
console.error("File not found:", filePath);
|
console.error("File not found:", filePath);
|
||||||
clearInterval(sendInterval);
|
clearInterval(sendInterval);
|
||||||
@ -341,6 +355,21 @@ fastify.register(async function (fastify) {
|
|||||||
// Start sending data periodically
|
// Start sending data periodically
|
||||||
sendInterval = setInterval(sendData, 5000);
|
sendInterval = setInterval(sendData, 5000);
|
||||||
|
|
||||||
|
// Handle incoming messages from the client to update the ids
|
||||||
|
connection.socket.on("message", (message) => {
|
||||||
|
try {
|
||||||
|
const parsedMessage = JSON.parse(message);
|
||||||
|
if (parsedMessage?.ids) {
|
||||||
|
//console.log("Received ids from client:", parsedMessage.ids);
|
||||||
|
clientIds = parsedMessage.ids; // Update the ids list from the client
|
||||||
|
} else {
|
||||||
|
//console.log("No ids received in the message");
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error parsing incoming message:", error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Handle client disconnect
|
// Handle client disconnect
|
||||||
connection.socket.on("close", () => {
|
connection.socket.on("close", () => {
|
||||||
console.log("Client disconnected");
|
console.log("Client disconnected");
|
||||||
@ -364,66 +393,6 @@ fastify.register(async function (fastify) {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.register(async function (fastify) {
|
|
||||||
fastify.get(
|
|
||||||
"/options-zero-dte-reader",
|
|
||||||
{ websocket: true },
|
|
||||||
(connection, req) => {
|
|
||||||
let jsonData;
|
|
||||||
let sendInterval;
|
|
||||||
|
|
||||||
// Function to send data to the client
|
|
||||||
const sendData = async () => {
|
|
||||||
const filePath = path.join(
|
|
||||||
__dirname,
|
|
||||||
"../app/json/options-flow/zero-dte/data.json"
|
|
||||||
);
|
|
||||||
try {
|
|
||||||
if (fs.existsSync(filePath)) {
|
|
||||||
const fileData = fs.readFileSync(filePath, "utf8");
|
|
||||||
jsonData = JSON.parse(fileData);
|
|
||||||
connection.socket.send(JSON.stringify(jsonData));
|
|
||||||
} else {
|
|
||||||
console.error("File not found:", filePath);
|
|
||||||
clearInterval(sendInterval);
|
|
||||||
console.error("Connection closed");
|
|
||||||
throw new Error("This is an intentional uncaught exception!");
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.error("Error sending data to client:", err);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Send data to the client initially
|
|
||||||
sendData();
|
|
||||||
|
|
||||||
// Start sending data periodically
|
|
||||||
sendInterval = setInterval(sendData, 5000);
|
|
||||||
|
|
||||||
// Handle client disconnect
|
|
||||||
connection.socket.on("close", () => {
|
|
||||||
console.log("Client disconnected");
|
|
||||||
connection?.socket?.close();
|
|
||||||
clearInterval(sendInterval);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Handle server crash cleanup
|
|
||||||
const closeHandler = () => {
|
|
||||||
console.log("Server is closing. Cleaning up resources...");
|
|
||||||
clearInterval(sendInterval);
|
|
||||||
connection?.socket?.close();
|
|
||||||
};
|
|
||||||
|
|
||||||
// Add close handler to process event
|
|
||||||
process.on("exit", closeHandler);
|
|
||||||
process.on("SIGINT", closeHandler);
|
|
||||||
process.on("SIGTERM", closeHandler);
|
|
||||||
process.on("uncaughtException", closeHandler);
|
|
||||||
process.on("unhandledRejection", closeHandler);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Function to start the server
|
// Function to start the server
|
||||||
function startServer() {
|
function startServer() {
|
||||||
if (!serverRunning) {
|
if (!serverRunning) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user