SSE
serverとの接続を確立し続け、clientへデータを送り続けられる
使うのはかなり簡単
参考
server
code:app/sample/route.ts
export async function GET(_req: NextRequest) {
...
return new NextResponse(stream.readable, {
headers: {
'Content-Type': 'text/event-stream',
},
});
メッセージに含められるフィールド
data
SSE によって送信したいデータ
id
eventのid
event
event名
clientで、eventSource.addEventListenerする際にこのevent名を指定する
デフォルトでは「message」というevent名になる
retry
切断に伴う再接続を行うまでの時間
未指定でもブラウザの実装に応じてある程度の間隔で再接続される
client