CameraLiveDocker / index.mjs
awacke1's picture
Update index.mjs
2767dda verified
raw
history blame
1.82 kB
import express from "express";
import 'dotenv/config.js';
import { createServer } from "http";
import { Server } from "socket.io";
import { client as gradioClient } from "@gradio/client";
import { createRequire } from 'node:module';
const require = createRequire(import.meta.url);
global.EventSource = require('eventsource');
const app = express();
const httpServer = createServer(app);
app.use(express.static('public'));
const io = new Server(httpServer);
// 🌐 Server Initialization
httpServer.listen(7860, () => {
console.log("App running on localhost:7860");
});
// πŸ”Œ Socket Connection Handler
io.on("connection", (socket) => {
console.log("New socket connection");
// πŸ“‘ API Request Listener
socket.on("ask_api", (clientData) => {
console.log("Received client data:", clientData);
console.log("Contacting API...");
handleAPICall(clientData, socket);
});
});
// πŸš€ API Call Function
async function handleAPICall(data, socket) {
const grapi = await gradioClient("fffiloni/mndrm-call");
try {
const apiResult = await grapi.predict("/infer", [data[0], data[1]]);
console.log("API Result:", apiResult);
socket.emit("api_response", apiResult.data);
} catch (error) {
console.error("API Error:", error);
socket.emit("api_error", "ERROR ON API SIDE, SORRY...");
}
}
// πŸ§ͺ Optional Server Test Function
// Uncomment to test server connections
/*
async function testServers() {
try {
const grapiTest = await gradioClient("https://gradio-hello-world.hf.space");
const apiTestResult = await grapiTest.predict("/predict", ["John"]);
console.log("Test API Result:", apiTestResult);
} catch (error) {
console.error("Test Error:", error);
}
}
// testServers();
*/