(通用 Socket.io、push-notification)教你实现 web 网站实时推送系统消息到“电脑任务通知栏”

消息通知是 web 网站的一个基本常规功能。web 网站消息管理模块一般都是用户主动请求消息通知,即使采用 socket 技术,也仅仅只是在用户浏览当前系统网站时,才能发现系统推送的消息通知,这样很容易造成消息通知不到位,发现不及时。本场 Chat 利用 HTML5 中的 JavaScript Web Notification API 新增功能,它允许 Chrome、Safari、Firefox 和 Edge 等现代浏览器将消息通知推送到用户的桌面,结合 Socket.io 技术,实现网站消息实时推送至“电脑任务通知栏”。预览地址:https://www.ctrlcv.vip (测试方式:开启两个浏览器,chrome 和 edge,分别登录账号: admin 密码 :123456 和 账号:qwer 密码:qwer 。在 admin 的用户管理中给 qwer 用户推送自定义消息。注意,首次推送,浏览器右上角会出现类似 “显示通知” 的请求,选择允许即可。)

效果图:
在这里插入图片描述
在这里插入图片描述

所用技术栈包括:Node.js + Express + Socket.io + Vue.js + Element-UI + Notification API

你会得到什么?

  1. Node.js + Express + Socket.io 实现的消息推送后台服务的中转站源码,利用这套 “中转站” ,可结合任何前后端技术,实现系统消息的实时推送。
  2. Vue.js + Element-UI + Notification API 实现客户端实时接收消息和通过浏览器将消息通知到用户桌面并显示在电脑任务通知栏中的核心代码。
  3. 了解消息实时推送的整体流程,包括数据库表结构基本设计。
  4. 了解这套系统部署到服务器生成环境下遇到的坑,及对应解决方案。
  5. 了解 Nginx、 Node.js、IIS 部署 https 的解决方案。

详情请戳!!!

文章已更新

因为跟GitChat有约定,不可将文章放在第三方平台,所以我将源码和文章都放在我的公众号里 “面向 CtrlCV 编程”,回复“message” 即可获得

要在 Laravel 中整合 PHPSocket.io 实现 web 消息推送,你需要遵循以下步骤: 1. 安装 PHPSocket.io 你可以使用 Composer 包管理器安装 PHPSocket.io。在终端中,导航到 Laravel 项目目录并运行以下命令: ``` composer require elephant-io/elephant.io ``` 2. 配置 PHPSocket.io 在 Laravel 项目中,你需要在 `config/app.php` 文件中添加以下行: ```php 'aliases' => [ // ... 'ElephantIO' => 'ElephantIO\Engine\SocketIO\Version1X', ], ``` 3. 创建 PHPSocket.io 服务提供者 在 Laravel 项目中,你需要创建 PHPSocket.io 服务提供者。运行以下命令来创建: ``` php artisan make:provider SocketIoServiceProvider ``` 在 `SocketIoServiceProvider` 类中,你需要添加以下内容: ```php use ElephantIO\Client; use ElephantIO\Engine\SocketIO\Version1X; public function register() { $this->app->singleton(Client::class, function ($app) { $client = new Client(new Version1X('http://localhost:3000')); return $client; }); } ``` 此代码将在 Laravel 应用程序中注册 `Client` 类的单例实例。 4. 创建推送事件 在 Laravel 项目中,你需要创建推送事件。运行以下命令来创建: ``` php artisan make:event PushNotification ``` 在 `PushNotification` 类中,你需要添加以下内容: ```php public $message; public function __construct($message) { $this->message = $message; } public function broadcastOn() { return new PrivateChannel('push-notification'); } ``` 此代码将创建一个名为 `PushNotification` 的事件类,并在构造函数中接受要推送消息。`broadcastOn` 方法指定了事件应该广播到的频道。 5. 创建事件监听器 在 Laravel 项目中,你需要创建事件监听器。运行以下命令来创建: ``` php artisan make:listener PushNotificationListener ``` 在 `PushNotificationListener` 类中,你需要添加以下内容: ```php use ElephantIO\Client; protected $socket; public function __construct(Client $socket) { $this->socket = $socket; } public function handle(PushNotification $event) { $this->socket->initialize(); $this->socket->emit('push-notification', ['message' => $event->message]); $this->socket->close(); } ``` 此代码将创建一个名为 `PushNotificationListener` 的事件监听器,并在构造函数中注入 `Client` 实例。`handle` 方法将使用 `Client` 类向 Socket.io 服务器发送消息。 6. 注册事件和监听器 在 Laravel 项目中,你需要在 `EventServiceProvider` 类中注册事件和监听器。在 `EventServiceProvider` 类中,你需要添加以下内容: ```php protected $listen = [ PushNotification::class => [ PushNotificationListener::class, ], ]; ``` 此代码将注册 `PushNotification` 事件和 `PushNotificationListener` 监听器。 7. 发送推送消息 在 Laravel 项目中,你可以使用以下代码发送推送消息: ```php event(new PushNotification('Hello world!')); ``` 这将触发 `PushNotification` 事件,并将消息发送到 Socket.io 服务器。然后,`PushNotificationListener` 监听器将从 Socket.io 服务器接收到消息并发送到连接到服务器的所有客户端。 以上是整合 PHPSocket.io 实现 web 消息推送的步骤。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

joba全栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值