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 回答