加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 自动从服务器向客户端发送警报消息,无需回发

发布时间:2020-12-13 16:15:12 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试在我的电子商务网站上实现一项功能,但我不知道该怎么做或从哪里开始. 我想提醒已经验证并登录到我的网站的客户,如果其他人带有他们(登录用户)的登录凭据以打算黑客或任何其他安全风险,请尝试再次使用任何其他计算机或浏览器登录.我可以提醒已登录
我正在尝试在我的电子商务网站上实现一项功能,但我不知道该怎么做或从哪里开始.

我想提醒已经验证并登录到我的网站的客户,如果其他人带有他们(登录用户)的登录凭据以打算黑客或任何其他安全风险,请尝试再次使用任何其他计算机或浏览器登录.我可以提醒已登录的用户尽快更改密码以获得更好的安全性,或者如果它是尝试从多个客户端登录的同一用户那么他将受到限制.

我将在我的数据库中维护一个已登录用户的列表,并将验证用户是否已经登录.但是如何在没有用户从客户端提出任何回发的情况下动态发送警报,因为只要其他登录尝试是使我的脚本应立即警告已登录的用户.

我希望我的要求是明确的.如果有什么是含糊的请评论,我会清楚.

我使用的是PHP 5.3和MySQL 5.5.该网站将托管在linux主机上.

我认为AJAX会有所帮助.我现在正在寻找解决方案很多天但没有运气.

请帮忙.

解决方法

你在谈论长期民意调查.

“长轮询”是用于描述以下技术的名称:

>发出一个AJAX请求(使用javascript框架,如
jQuery)服务器等待请求的数据可用,
循环和休眠(您的服务器端PHP脚本)
>数据返回到客户端并进行处理后,此循环重复
(通常在你的AJAX请求的onComplete回调函数中)

这基本上模拟了从客户端到服务器的连续实时流.出于多种原因,我不会在PHP中这样做.这里有一些 :

> PHP用于快速执行(不等待)
> PHP将强制您在服务器端进行某种轮询
依赖睡眠()
> PHP将占用你的RAM,同时为每个产生进程
请求(Apache会这样做)
>不要为此目的使用Apache服务器! Apache服务器将能够比几百个持久连接更好地处理成千上万的短有限连接.无论你走哪个方向(长轮询与ajax)你可能想要设置一个专门用于聊天的轻量级网络服务器.像Lighttpd或Nginx这样的东西,在相同的内存/ CPU条件下可以有更多的max_clients或更多的同时请求.

但是你可以使用sleep,轮询数据库(或者更好的缓存APC / Memcache)来实现.

如果你想做类似的事情跳进一些可以处理事件的技术:Python(Tornado,gevent,eventlet,Twisted,…),Ruby(Eventmachine,Erlang,Scala,服务器端JavaScript(node.js,彗星……

相反,你可以使用简单的方法

看看这张桌子.

你可以做那样的事情

>为ex创建一个名为db的表.当用户登录您的站点时,记录并记录一些各种数据(例如IP,登录日期……).将signout_date字段留空. (当用户注销时只更新此表并放置当前日期)因此,如果有人在您的站点上,则注销日期字段必须为空>然后在每个用户活动中,检查表中的user_id:如果有多个行具有相同的user_id和空的注销日期字段.然后只需通知用户,另一台用您的凭据登录的电脑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读