Initial pass at individual brew streams

This commit is contained in:
G.Ambatte
2026-10-07 00:07:56 +13:00
parent aeea09b6f3
commit 885feb31b0
2 changed files with 17 additions and 7 deletions
+12 -4
View File
@@ -196,19 +196,27 @@ export default async function createApp(vite) {
// Create Event Stream source for pages to listen to
let initStreamListener = false;
app.get('/stream', (req, res)=>{
app.get('/stream/:id', (req, res)=>{
const id = req.params.id;
res.writeHead(200, {
'Content-Type' : 'text/event-stream',
'Cache-Control' : 'no-cache',
'Cache-Control' : 'no-cache, no-transform',
'Connection' : 'keep-alive',
'Content-Encoding' : 'none'
});
res.write(`data: ${JSON.stringify({ init: Date.now().toString(), shareId: id, eventType: 'message' })}\n\n`);
if(!initStreamListener){
initStreamListener = true;
Stream.on('sendUpdate', (event, data)=>{
if(isLocalEnvironment) { console.log('Event:', event, '\nData:', data); }
res.write(`data: ${JSON.stringify({ ...data, eventType: event })}\n\n`);
if(isLocalEnvironment) {
console.log('Event:', event, '\nData:', data);
}
if(id == data.shareId) {
res.write(`data: ${JSON.stringify({ ...data, eventType: event })}\n\n`);
};
});
}
});