Skip to main content

WebSocket接続について

Rheel Chat APIは、Socket.IOを使用したリアルタイム双方向通信をサポートしています。 これにより、メッセージの即時受信や各種イベント通知をリアルタイムで実現できます。

接続エンドポイント

認証

WebSocket接続には、セッショントークンによる認証が必要です。

接続パラメータ

接続の実装

チャンネルへの自動参加

WebSocket接続が確立されると、ユーザーが所属している全チャンネルに自動的に参加します。
接続後、ユーザーが所属している全チャンネルのメッセージやイベントをリアルタイムで受信できます。

イベントの受信

WebSocket接続を通じて、以下のイベントをリアルタイムで受信できます。

メッセージイベント

リアクションイベント

既読イベント

添付ファイルイベント

実装例

以下は、チャンネルに参加してメッセージを送受信する完全な実装例です。

再接続戦略

Socket.IOはデフォルトで自動再接続をサポートしています。

ベストプラクティス

  • アプリケーション起動時に接続を確立
  • バックグラウンド移行時は切断を検討
  • フォアグラウンド復帰時に再接続
  • 再接続後は自動的に全チャンネルに再参加されます
  • イベントリスナーは適切にクリーンアップ
  • コンポーネント破棄時にリスナーを削除
  • 大量のメッセージ履歴は適切にページング
  • 不要になったらsocket.disconnect()を呼ぶ
  • すべてのイベントでエラーハンドリングを実装
  • トークン期限切れに対応
  • ネットワークエラーを適切に処理
  • connect_errorerrorイベントを監視
  • 不要なイベントリスナーは登録しない
  • メッセージ受信時のUI更新を最適化
  • 大量のイベント受信時はバッチ処理を検討

トラブルシューティング

症状: connect_errorイベントが発生する確認事項:
  • トークンが正しく設定されているか
  • トークンの有効期限が切れていないか
  • エンドポイントURLが正しいか
  • ネットワーク接続が正常か
症状: messages:createdイベントが発火しない確認事項:
  • WebSocket接続が正常に確立されているか(connectイベントを受信したか)
  • ユーザーがチャンネルに所属しているか(REST APIで確認)
  • 正しいチャンネルでメッセージが送信されているか
症状: 接続が不安定対策:
  • transportsの順序を調整(['websocket', 'polling']
  • タイムアウト値を調整
  • ネットワーク環境を確認

次のステップ

メッセージAPI

REST APIでメッセージを送信する

チャンネルAPI

チャンネルの作成と管理