Open7
Next.jsでリアルタイム通信を使う
WebSocket with Next.js
始めにNext.jsのサーバーサイド機能としてソケットを使ってみる。
App Router
調べても試しても、今はまだできないっぽい。
next-wsというライブラリは見つけたけど、Next.jsにパッチをあてる必要があり、メンテナンス性を考えて却下。
Page Router
いくつかの例もあり、実装して問題なく動作したが、デプロイしてみたらVercelでソケット通信は使えないのが判明したので、Next.jsのみで実装する方針自体を却下。
Express
当然別にサーバーを立てれば問題ない。デプロイ先はCloudRunが良さそう。
Websocket Service
websocketサービスを利用すれば簡単。送信数によっては価格が気になるところ。
Realtime DB
単純な情報同期で済むなら、Realtime DBで良いかも。
結論
リアルタイムである必要がある情報だけに絞って使い、以下を選択する。
- RDSのデータの同期ならSupabase Realtime
- NoSQLのデータの同期ならFirebase Realtime Database
- 機能性が必要なら Pusher か Partykit
- 無料のみで使いたいなら Achex
- 中規模以上のシステムが必要なら Cloud Run