使用laravel5.2、vue.js和pusher实时获取数据

使用laravel5.2、vue.js和pusher实时获取数据,laravel,notifications,real-time,vue.js,pusher,Laravel,Notifications,Real Time,Vue.js,Pusher,我有个问题。 我使用pusher进行实时通知,当它运行时,它使用noty通知我, 但我也希望它能在我的视图中实时显示新通知的数量,类似于facebook <span class="label label-warning" v-show="new_count">@{{ new_count }}<!-- get the new notifications --></span> Cron作业控制器。这种方法每分钟运行一次 请告诉我做错了什么以及如何做对。这。$ht

我有个问题。 我使用pusher进行实时通知,当它运行时,它使用noty通知我, 但我也希望它能在我的视图中实时显示新通知的数量,类似于facebook

<span class="label label-warning" v-show="new_count">@{{ new_count }}<!-- get the new notifications --></span>
Cron作业控制器。这种方法每分钟运行一次


请告诉我做错了什么以及如何做对。

这。$http.get()
向服务器发出一个get请求,但没有保持与服务器的连接打开。如果你想给你的网站添加实时功能,你应该实现类似socket.io的东西,它实现WebSocket。您还可以在后端执行
longpolling
,或在客户端执行
shortpolling
,以实现近实时功能。

这一点。$http.get()
对服务器执行单个get请求,但不保持与服务器的连接打开。如果你想给你的网站添加实时功能,你应该实现类似socket.io的东西,它实现WebSocket。您还可以在后端执行
longpolling
,或在客户端执行
shortpolling
,以实现近实时功能。

如果您的php代码正确,则应在Vue代码中添加订阅服务器

第一个包含pusher脚本(似乎不能作为npm包使用)

这应该行得通。现在谈谈您的php代码。我不确定
trigger
事件是否是pusher的类方法,在我看到的文档中,trigger被用作实例方法,并且有意义,因为您需要传递api密钥和其他身份验证值,这是在创建实例时完成的

require('Pusher.php');

$pusher = new Pusher("APP_KEY", "APP_SECRET", "APP_ID");
$pusher->trigger('test_channel', 'test-event', array('message' => 'hello world') );

因此,请检查您的服务器代码是否正确,但您在客户端上的操作肯定是错误的,请尝试这些更改并检查是否是您需要的

如果您的php代码是正确的,那么您应该在Vue代码中添加订阅服务器

第一个包含pusher脚本(似乎不能作为npm包使用)

这应该行得通。现在谈谈您的php代码。我不确定
trigger
事件是否是pusher的类方法,在我看到的文档中,trigger被用作实例方法,并且有意义,因为您需要传递api密钥和其他身份验证值,这是在创建实例时完成的

require('Pusher.php');

$pusher = new Pusher("APP_KEY", "APP_SECRET", "APP_ID");
$pusher->trigger('test_channel', 'test-event', array('message' => 'hello world') );

因此,请检查您的服务器代码是否正确,但您在客户端上的操作肯定是错误的,请尝试这些更改并检查您是否需要socket.io与推送程序不同?我应该同时使用它们还是只使用socket.io?既然您想使用Pusher,就不再需要socket.io了。但从技术上讲,您可以同时使用这两种技术,它们都是web套接字技术。Socket.io是一个自己实现web套接字的开源库,而Pusher是一家通过服务器为您提供服务的公司。Socket.io与Pusher不同吗?我应该同时使用它们还是只使用socket.io?既然您想使用Pusher,就不再需要socket.io了。但从技术上讲,您可以同时使用这两种技术,它们都是web套接字技术。io是一个开源库,可以自己实现web套接字,而Pusher是一家通过服务器为您提供服务的公司。您在哪里订阅Pusher服务?如下所述,vue.resource中的get方法是一个单一的方法,您需要不断地侦听pusher事件。在文档中,他们说你是用susbcirbe方法做的?这在您的Vue代码中的什么位置?谢谢!我现在正在学习订阅推送服务。你在哪里订阅推送服务?如下所述,vue.resource中的get方法是一个单一的方法,您需要不断地侦听pusher事件。在文档中,他们说你是用susbcirbe方法做的?这在您的Vue代码中的什么位置?谢谢!我现在正在学习订阅推送服务。
<script src="//js.pusher.com/3.0/pusher.min.js"></script>
ready () {
  const pusher = new Pusher('APP_KEY')

  // susbcribe to your channel
  const channel = pusher.subscribe('test-channel')

  // listen to the event defined on that channel
  channel.bind('test-event', data => {
    console.log(data.message)
  })
}
require('Pusher.php');

$pusher = new Pusher("APP_KEY", "APP_SECRET", "APP_ID");
$pusher->trigger('test_channel', 'test-event', array('message' => 'hello world') );