我在laravel中创建了一个应用程序。当一个用户创建作业时,必须由其他用户通知。对于通知,我使用了laravel通知。但我需要刷新页面才能收到通知。如何实时获取通知。
答案 0 :(得分:0)
有很多方法可以做到这一点,从laravel你可以使用Laravel Broadcasting,点击here!
在那里你可以找到设置你的服务器(laravel)和你的前端的教程
答案 1 :(得分:0)
最新的laravel版本附带Laravel Echo,这是一个可以获得您想要的工具。
您可以使用laravel应用程序来广播事件。 然后,您可以定义要在其上广播这些事件的频道。
然后你需要receive这些广播在你的前端。
此设置还需要使用driver,这可能是推送器,redis或许多其他设备。
答案 2 :(得分:0)
这是一个新的评论通知流程,仅供参考。
用户模型
namespace App\Models\Sys;
use App\Models\Model;
use Illuminate\Notifications\Notifiable;
class User extends Model
{
use Notifiable;
protected $table = 'user';
public function receivesBroadcastNotificationsOn()
{
return 'user.' . $this->id;
}
}
运行监听器
php artisan queue:listen --tries=1
安装软件包
npm i laravel-echo laravel-echo-server pm2 socket.io-client
启动laravel echo服务器
node_modules/laravel-echo-server/bin/server.js start
在resources/js/bootstrap.js
中导入回声
/**
* Echo exposes an expressive API for subscribing to channels and listening
* for events that are broadcast by Laravel. Echo and event broadcasting
* allows your team to easily build robust real-time web applications.
*/
import Echo from 'laravel-echo';
window.io = require('socket.io-client');
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + (process.env.MIX_APP_ENV === 'local' ? ':6001' : ''),
auth: {
headers: {}
},
});
在页面中接收通知
<script>
Echo.private('user.' + uid)
.notification((e) => {
// do something
});
</script>