Skip to content

Instantly share code, notes, and snippets.

@CareTiger
Forked from Atinux/sse.ts
Created June 30, 2023 00:08
Show Gist options
  • Save CareTiger/0c4d645ac95ce0b18398bf348ada96a3 to your computer and use it in GitHub Desktop.
Save CareTiger/0c4d645ac95ce0b18398bf348ada96a3 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)
await new Promise((resolve) => {
// Wait forever
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment