繁体   English   中英

Mysql数据库更改状态时使用Push.js推送通知

[英]Push notifications with Push.js when Mysql database changes status

目前,我有一个带有客户端和管理员端的PHP系统订单,一个客户端下订单,然后管理员根据订单的进度更改状态。 信息订单存储在MySQL数据库表中。

例如,这是我存储用户帐户,信息顺序和状态顺序的表:

CREATE TABLE order (
idorder INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user VARCHAR(30) NOT NULL,
content_order VARCHAR(30) NOT NULL,
status VARCHAR(50)
);

当客户下订单并以“待处理”状态注册时,在管理页面中我们会检查该订单并通过AJAX单击按钮将状态更新为“ PROGRESS”来更改状态,但是客户必须刷新其页面以查看其订单更改并且我希望客户在其网站上的订单状态更改时得到推送通知。

我正在测试Push.js工具,效果很好。 像这个例子:

<html>
<body>
<h4>Press button</h4>
<button id="notify">Notify</button>

<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/push.js/1.0.4/push.min.js"></script>
<script>
 $(document).ready(function(){
        if(!Push.Push.Permission.GRANTED){
            Push.Permission.request();
        }
    });

$("#btn_notificar").click(function(){
        //Push.Permission.request();

        Push.create('NOTIFICATION', {
            body: 'My first notification',
            icon: 'icon.png',
            timeout: 8000,               // Timeout before notification closes automatically.
            vibrate: [100, 100, 100],    // An array of vibration pulses for mobile devices.
            onClick: function() {
                window.focus();
                this.close();
            }  
        });

    });
</script>
</body>
</html>

当管理员更改其订单状态时,如何在客户页面中集成此通知。

我需要一些帮助。

这可以通过在用户的浏览器和服务器之间建立套接字连接来实现。

拟议流程:

  • 用户下订单。 浏览器将订单请求发布到服务器,并显示订单详细信息页面。 浏览器还与服务器建立套接字连接,服务器通过其唯一的订单ID监听新下订单的状态更改。
  • 管理员用户更改此订单的状态。 浏览器将订单请求发布到服务器并更新数据库。 服务器向正在侦听此订单更改的所有客户端发出/广播此状态更改。
  • 用户的浏览器会收到有关状态更改的消息,并通知用户有关更改的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM