🙌

Honoで<turbo-stream-source>を動かす

2024/02/04に公開

「HonoでTurbo Streamsレスポンスを描画する」をサーバーからのpushにも対応する
https://zenn.dev/laiso/articles/30c4274d4b7c69

要点

  • stream sourceに接続することでサーバーからクライアントに描画の指示が出せる
  • 例えばグループチャットの実装などに使える
  • WebSocketもしくはEventSource(SSE)のエンドポイントを用意する

DEMO(WebSockets版): https://hono-turbo-stream.laiso.workers.dev/

課題

  • TurboからのWebSocket接続は切断時の再接続処理を書く必要がある
    • Rails実装にヒントがありそうだがまだ調査していない
  • Cloudflare Workers上で本格的なリアルタイムなアプリケーションを書くにはサーバーから変更をブロードキャストする仕組みがいる

参考

  1. https://turbo.hotwired.dev/handbook/streams#integration-with-server-side-frameworks
  2. https://github.com/honojs/hono/issues/1153#issuecomment-1767321332
  3. https://hono.dev/helpers/streaming

Discussion