public function newMessage()
{
// проверяем...
//если есть новое
setcookie("newMessage", $count, time() + 86400);
return 'yes';
//если нет
return 'no';
}
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Queue\SerializesModels;
class ChatMessageSend implements ShouldBroadcast
{
use SerializesModels;
/**
* @var User
*/
public $user;
/**
* @var array
*/
public $data;
/**
* Create a new event instance.
* @param array $data
*/
public function __construct(User $user, array $data)
{
$this->user = $user;
$this->data = $data;
}
/**
* Get the channels the event should broadcast on.
*
* @return Channel|array
*/
public function broadcastOn()
{
return ['chat-channel'];
}
public function broadcastAs()
{
return 'message-received';
}
}
简而言之,抽象,添加检查信息出现的方法,您需要发出通知。例如
将路由添加到此方法。在前端使用 ajax 监听这些 cookie。
像这样的东西......
我做了和自己类似的事情,实现如下:
如果将来您不仅想要电子邮件通知,请查看网站 - http://laravel-notification-channels.com/有很多通知渠道。
让我们从选择事件广播的驱动程序开始,我将以Pusher为例向您展示。
首先,让我们更改 .env 文件:
通过 Composer 下载包:
Pusher 目前就这些,最后我们将再次回到它。
我们创建一个事件,(示例和描述在这里)例如,当有人写信给用户时,我们将发送通知。通知对象看起来像这样:
事件广播需要 broadcastOn 和 broadcastAs 方法,您还需要为此事件创建一个监听器,以便发送电子邮件消息和其中的其他消息。
现在您需要创建一个邮件通知,我们在其中指定信件模板,链接中提供了一个示例,我们将其称为 MessageSend。
接下来,您需要创建一个将触发此通知的监听器:
现在我们
EventServiceProvider将在文件中绑定事件和侦听器:现在一切都准备好发送通知了。要发送通知,您需要触发一个事件:
信件去了邮件,又去了Pusher服务,但是现在我们需要在浏览器中显示,Pusher网站上有不同语言的例子,我给JS展示一下:
代替警报,编写自己的 JS 用于浏览器中的通知。
PS 代码应该可以工作,但我可能在某处遗漏了一些东西