2012-01-22 8 views
3

私は、私のカップルの仲間と一緒に取り組んでいるプロジェクトのためのMVCとしてCodeIgniterを使用しています。また、CIのデータベースセッションサポートも使用しています。それで私は "Who's online"の概念がすでに存在していることは知っていますが、実際には誰もが私たちのニーズに実際には当てはまりません。私たちが展開しているサービスは、SaaSのようなスタンドアロンのシステムですが、同時にユーザー同士でも通信できるようにしています。それで、いつ、どこで、誰がオンラインなのかなど、具体的な情報を希望する相手と共有できるようにします。ユーザーのログイン時と同じように、CIのセッションがIPを把握していると言いました。オンライン、CodeIgniter、およびセッション

セッションDBのipsとログインしている人を比較する意味で、セッションデータを悪用できると思うのは当然の考えですか?私たちのサービスを通して互いに親しみを感じています。それが良い、潜在的な考えであれば、あなたはそれに取り組む手段としてこのタイプのディスプレイのために何を提案しますか?私は100%CIでのセッションがどのように機能しているのか分からないので、私が現在想像しているように私が好意的に働くかどうかはわかりません。

しかし私の想像力は私と一緒に逃げているのですが、そうでなければこれに取り組むための良い方法はありますか?

EDIT 2台のコンピュータにログインした後、私はDBにおけるCIセッションが同じIPと2を持っているように、私の最初の思考パターが欠陥があるように見える参照してください。

また、ダウン投票のおかげで、あなたが誰であれ、私はこのコメントをどうやって達成するかを知りたいと思ったのですが、コメントは得られませんでした。あなたがここで説明しようとしているものに関連するものは何も得られないので、私に助けてくれる記事や投稿を知っていれば、少なくともそれに向かって私を指差してください。

答えて

4

last_activityの列が現在の時間の特定の範囲(5分、10分など)内にあるレコードについては、_ci_sessionsテーブル(または名前が何であれ)を確認する必要があります。 HTTPを使用すると、誰かがセッションを中止した正確な瞬間を知る素晴らしい方法はありません(明示的にログアウトし、自分でセッションを破棄しない限り)。あなたはソケットでそれを行うことができますが、これは通常、このようなもののために過度のものです。

「潜在的な」セッションのリストを取得した後でも、それぞれをループする必要があります(user_data列のシリアル化を解除することを忘れないでください)。「ログイン」を構成する正しいユーザーデータのキー/あなたの認証システムに基づいています。まずコンセプトを証明してから、いくつかのリクエストで結果をキャッシュする方法を見つけてください。リクエスト・レベルが正確ではないので、リクエストごとに余分な負荷がかからずにうまくいくでしょう。

関連する問題