2013-02-22 52 views
0

如何讓一個會話刷新另一個會話?假設我們有一部智能手機,一臺服務器和一臺筆記本電腦。筆記本電腦有一個與服務器的當前會話,然後智能手機將HTTP POST發送到服務器,現在我們希望此事件觸發筆記本電腦會話中的刷新。Symfony 2.0會話間通信

回答

0

你的問題不是很清楚你的問題的具體情況,但假設你記錄爲用戶X(並且你的用戶實體有一個字段在每個更新上獲取時間戳,例如:updated_at)都在手機和筆記本電腦上

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> 

希望,手機改變用戶的地址,例如,可以通過具有類似於一個動作得到了使用AJAX您的筆記本電腦,事件它有助於。