モハメド・アメール、
はQuickblox Serverで使用されるアプローチであり、それはわずかなオーバーヘッドを必要とするけれども、私はそのほとんど固体感じます。
クライアントアプリケーション(iOS androidのいずれか)がquickbloxサーバーとのセッションを確立すると、quickbloxサーバーは定期的な間隔の後にクライアントアプリケーションがサーバーにプレゼンス情報を送信することを期待します。
プレゼンス情報の送信はかなり簡単です。彼らは私たちが持っているセッションIDで5分の間隔のあいだに私たちが打ち続けるapiを書いています。彼らはセッションIDを検証し、有効であることが判明すると、そのIDに関連付けられたユーザーの有効期限を5分以上延長します。彼らは最後のヒット時間を維持している場合、要求時間は5分の時間枠内であれば、彼らがチェックし、すべてのsubsequesnt要求のため:彼らは私が、こと
アプローチ1であると考えているんだろう何
はい、単にそれを処理します。リクエストが5分後に到着した場合、ユーザーのセッションIDが削除され、セッションがタイムアウトしたと応答します。
アプローチ2:彼らはオンライン提供しているためだけでなく、彼らは単に彼らはおそらく持つエントリを検索し、DB上でスワイプバックグラウンドスレッドを作成するようにサーバーからセッションIDを削除するには、着信要求に依存カントオフライン情報最後のヒット時間は5分以上になり、DBから削除されます。ユーザーセッションが期限切れになったことを宣言します。これは、クライアントが継続的にサーバーをヒットアプリ伴い、情報をpresenseするチャットアプリケーションなどのアプリケーションのためのサーバーの負担を増大させますが
は、このオーバーヘッドは、まだ私は信じて結構ですので、非常に重要です。
希望、私はいくつかのアイデアをご提供しています少なくとも:)
何盗聴や再利用は、あなたが想像している、そしてどのようにこれが出てすぐにアプリが終了したときに、ユーザをログインすることで軽減されますか? – Wain
私がサーバーにログアウトを送信すると、サーバーはこのセッションを終了し、誰もそれを使用できなくなります。 ユーザーがアプリケーションを終了する前にログアウトしなかった場合とは異なり、セッションは有効になり、誰でもネットワーク上の要求/応答をキャッチしてこのセッションIDを再利用できます。 –
'誰でもリクエスト/レスポンスを捕まえることができます' - どのように?あなたはHTTPSと固定を使用していると言っているので、ログアウトで保護しようとしているベクターは何ですか? – Wain