关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
9个月前关门了。
改进这个问题
我用php编写了一个脚本,它的行为有点像队列。队列中的一组用户位于1行上,我在最后一列中有一个布尔值来表示行已满。当用户加入队列时,每一行的用户列都会被填满。你可以看看我的table,看看它是什么样子。
现在我的问题是,如何一次返回所有用户的数组 isfull = 1
? 我知道如何去检索所有用户并将他们放入一个列表中,但是如何使所有客户机都在积极地等待/监听组被填满呢?
所有客户机都运行相同的php代码,因此理想情况下,我会在网站上为它们显示一个加载屏幕,当组被填满时,代码将返回一个json数组,然后用户列将被设置回null。什么php函数或库可以让我主动观看 isfull
列值更改为1时返回?
为了澄清,我已经编写了代码来插入用户、检查是否已满以及设置 isfull=1
,但我不知道如何在行已满时将json返回给所有用户。如果只有user5可以看到 isfull == 1
那么json只会返回给他们,对吗?
2条答案
按热度按时间mrphzbgm1#
假设您有一个函数为user1、user2、…、user5列添加值。此函数名为
addValueToUserColumn(columnNo, value)
(第1、2、…、5栏)现在,您必须首先确定在user1,…,user5列中添加值时还剩下多少列。要找出有多少列为空,请使用以下sql:
然后,检查
sum_of_nulls === 0
不管怎样。如果sum_of_nulls === 0
,然后调用另一个函数来更改isFull
. 我们调用这个函数setIsFullColumn()
:现在,
setIsFullColumn()
返回true,则可以将json数组发送给所有用户。所以,我们可以说
addValueToUserColumn()
可能是:现在,由于这4个用户已经与服务器断开连接,您将如何向所有5个用户发送数据
为此,我们采用了服务器推送技术。不幸的是,这个答案部分太小,无法讨论服务器推送。你可以在这里阅读推送技术。推送技术允许将数据从web服务器发送到客户端。引自维基百科:
http服务器推送(也称为http流)是一种将未经请求的(异步)数据从web服务器发送到web浏览器的机制。http服务器推送可以通过几种机制中的任何一种实现。
ifmq2ha22#
这是一个轻微的带宽妓女,但我这样做是为了一个聊天应用程序,我用php和jquery。您可以使用内置的js函数
setInterval(function,milliseconds)
每x毫秒运行一个函数。该函数需要对php脚本运行jquery get请求,该脚本读取并返回isfull是0还是1,并且可以告诉客户端它需要执行操作的信息。
因此,如果他们的队列已满,它可以告诉他们,然后你可以加载他们或做任何你需要的事情。