sse stuff
This commit is contained in:
36
api/index.js
36
api/index.js
@@ -18,29 +18,33 @@ var ws;
|
||||
var api_connected = false;
|
||||
|
||||
function send_events_to_clients(data) {
|
||||
sse_clients.forEach(client => client.response.write(`data: ${JSON.stringify(data)}\n\n`));
|
||||
sse_clients.forEach((client) =>
|
||||
client.response.write(`data: ${JSON.stringify(data)}\n\n`)
|
||||
);
|
||||
}
|
||||
|
||||
function handle_sse_client(request, response, next) {
|
||||
console.log("handling sse client");
|
||||
const headers = {
|
||||
"Content-Type": "text/event-stream",
|
||||
'Connection': "keep-alive",
|
||||
Connection: "keep-alive",
|
||||
"Cache-Control": "no-cache",
|
||||
};
|
||||
// response.writeHead(200, headers);
|
||||
// response.write("yeet\n\n");
|
||||
const clientID = Date.now();
|
||||
const newClient = {
|
||||
id: clientID,
|
||||
response
|
||||
};
|
||||
|
||||
sse_clients.push(newClient);
|
||||
response.writeHead(200, headers);
|
||||
response.write(JSON.stringify("yeet") + "\n\n");
|
||||
const clientID = Date.now();
|
||||
const newClient = {
|
||||
id: clientID,
|
||||
response,
|
||||
};
|
||||
|
||||
request.on("close", () => {
|
||||
console.log(`${clientID} Connection closed`);
|
||||
sse_clients = sse_clients.filter(client => client.id !== clientID);
|
||||
});
|
||||
sse_clients.push(newClient);
|
||||
|
||||
request.on("close", () => {
|
||||
console.log(`${clientID} Connection closed`);
|
||||
sse_clients = sse_clients.filter((client) => client.id !== clientID);
|
||||
});
|
||||
}
|
||||
|
||||
var connect_to_api = function () {
|
||||
@@ -56,8 +60,8 @@ var connect_to_api = function () {
|
||||
try {
|
||||
var msg = JSON.parse(message);
|
||||
if (msg.type == "STATUS") {
|
||||
last_status = msg.data;
|
||||
send_events_to_clients(message);
|
||||
last_status = msg.data;
|
||||
send_events_to_clients(message);
|
||||
} else if (msg.type == "IMAGE") {
|
||||
console.log("got picture");
|
||||
// console.log(msg.image);
|
||||
|
||||
@@ -60,12 +60,14 @@
|
||||
<script>
|
||||
var update_status = setInterval(update_status, 1000);
|
||||
assign_button_callbacks();
|
||||
const events = new EventSource("/events");
|
||||
events.onmessage = (event) => {
|
||||
const parsedData = JSON.parse(event.data);
|
||||
console.log("RECEIVED EVENT");
|
||||
console.log(parsedData);
|
||||
}
|
||||
window.onload = function () {
|
||||
const events = new EventSource("/events");
|
||||
events.onmessage = (event) => {
|
||||
const parsedData = JSON.parse(event.data);
|
||||
console.log("RECEIVED EVENT");
|
||||
console.log(parsedData);
|
||||
}
|
||||
};
|
||||
|
||||
function assign_button_callbacks() {
|
||||
var buttons = document.getElementsByClassName("movebutton");
|
||||
|
||||
Reference in New Issue
Block a user