Skip to content

Instantly share code, notes, and snippets.

@mubaidr
Forked from Atinux/sse.ts
Created January 12, 2024 09:58
Show Gist options
  • Save mubaidr/6097b16e91985c05e240094e5245fd05 to your computer and use it in GitHub Desktop.
Save mubaidr/6097b16e91985c05e240094e5245fd05 to your computer and use it in GitHub Desktop.
SSE endpoint example with Nuxt 3
// ~/server/api/sse.ts
export default defineEventHandler(async (event) => {
if (!process.dev) return { disabled: true }
// Enable SSE endpoint
setHeader(event, 'cache-control', 'no-cache')
setHeader(event, 'connection', 'keep-alive')
setHeader(event, 'content-type', 'text/event-stream')
setResponseStatus(event, 200)
let counter = 0
const sendEvent = (data: any) => {
event.node.res.write(`id: ${++counter}\n`);
event.node.res.write(`data: ${JSON.stringify(data)}\n\n`);
}
myHooks.hook('sse:event', sendEvent)
// Let the connection opened
event._handled = true;
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment