0

あるセッションで別のセッションを更新するにはどうすればよいですか? スマートフォン、サーバー、ラップトップがあるとしましょう。ラップトップにはサーバーとの現在のセッションがあり、スマートフォンはサーバーに HTTP POST を実行します。今度は、このイベントがラップトップのセッションでリフレッシュをトリガーするようにします。

4

1 に答える 1

0

あなたの質問はあなたの問題の詳細について明確ではありませんが、電話とラップトップの両方で、ユーザー X としてログインしている (そして、ユーザー エンティティには更新ごとにタイムスタンプを取得するフィールドがあると仮定します (例: updated_at))。たとえば、ユーザーアドレスを変更すると、次のようなアクションを実行することで、ajax を使用してラップトップでそのイベントを取得できます。

class SomeController extends Controller {
      //...
      /**
        * checks if entity was updated since
        *
        * @Route("/check/{id}/{tstamp}", name="entity_check")
        * @Template()
        */
        public function checkAction($id, $tstamp) {
           //check if anything updated by comparing entity's updated_at against $tstamp
           //...
           //as the user locale may differ from server's, send back the timestamp too
           $data['last_update'] = time();
           return new Response(json_encode($data));
        }
}

小枝ファイルのJavaScript:

<script>
var last_check = {{ "now"|date("t") }};
setInterval(function() { 
             $.ajax( "{{ url('route_to_your_check_action', {'id': entity.id, 'last_check':''}) }}/" + last_check )
             .done(function(data) { 
                         var info = $.parseJSON(data);
                         last_check = info.last_update;
                         //if anything changed refresh on user side 
                   })
             .fail(function() { //on error do something if needed 
                   });
           }
           , 12000); // make this call every 12 seconds
</script>

それが役に立てば幸い。

于 2013-02-22T16:14:12.657 に答える