首页 > 解决方案 > 为什么在浏览器的视图(刀片)文件中没有更新触发的推送器数据?

问题描述

我有3 个 div 的刀片文件

欢迎.blade.php

 <div id="id1">0</div>
 <div id="id2">0</div>
 <div id="id3">0</div>
 <script>
    //pusher
    var pusher = new Pusher('xxxxxxxxxxxx', {
        cluster: 'eu',
        encrypted: true
      });
   // Subscribe to the channel we specified in our Laravel Event
      var channel = pusher.subscribe('my-channel');
   // Binding a function to a Event
     channel.bind('App\\Events\\UpdatedTime', function(data){
      target = data.id;
      console.log(data);
      value = data.value;
      var div1 = document.getElementById(target);
      div1.innerHTML =value;
     });
</script>

div 中的0应替换为由推送器中的事件触发的值。

当我在 URL 中传递 Id 时,我可以在调试控制台中的推送器中触发事件,如下所示。( http://project.test/id1 ) 在此处输入图像描述

在我的控制器中:

 public function getTime($divId)
    {

     // pusher
        $options = array(
            'cluster' => 'ap3',
            'useTLS' => true
        );

        $pusher = new Pusher(
            env('PUSHER_APP_KEY'),
            env('PUSHER_APP_SECRET'),
            env('PUSHER_APP_ID'),
            $options
        );
        //var_dump($pusher);
        $pusher->trigger('my-channel', 'UpdatedTime', ['id' => $divId, 'value' => 1511);
        return view('welcome');


    }

事件文件

  public $id, $value;
    public function __construct($id, $value)
    {
       $this->id = $id;
       $this->value = $value;
    }
    public function broadcastOn()
    {
        return new Channel('my-channel');
    }

路线/web.php

Route::get('/getTime/{id}', 'App\Http\Controllers\TimeController@getTime');

在浏览器中传递URL后, http://project.test/id2

我只能看到

0
0  
0

在浏览器中,实际上应该在浏览器中。

0
1511
0

如何在浏览器中获取触发的事件值?有人可以帮忙吗?

谢谢

标签: jquerylaravel-5

解决方案


推荐阅读