php:两个客户端共享服务器用户定义的变量

时间:2017-05-12 11:04:24

标签: javascript php

目标:创建厨房和前台可以互相通知。

问:如何创建可以从厨房和前台读取和设置的php变量。假设变量是 vStatus 。所以计划是当前台创建订单然后 vStatus =' kitchen1' ,当厨房通知订单准备就绪时 VSTATUS =' frontdesk1'

彼此

我创建了计时器功能来监视vstatus:

    vstatus =' frontdesk1' 在前台
  • 时刷新页面,然后设置 vstatus =' ' 即可。所以前台侧循环的计时器功能一直持续到 vstatus = frondesk1
  • 在厨房上 vstatus =' kitchen1' 时,厨房页面会刷新并设置 vstatus ='& #39; 和计时器功能在厨房一侧循环,直到 vstatus =' kitchen1'

硬件设置如下:

  • 前台:apache web服务器,网络浏览器
  • kitchen:网络浏览器

2 个答案:

答案 0 :(得分:0)

如果要在任何设置的时间间隔内检查值,您需要使用SQL将该变量存储在服务器和AJAX请求上

答案 1 :(得分:0)

你不能在不同的请求之间共享一个PHP变量 - 从安全的角度来看这将是一件可怕的事情。

你正在寻找的是一个存储 - 在php进程之外的一些地方,即使在请求处理(php执行)结束时也会保持你的价值。

有许多选项可供选择,但这里有一些最常见且最容易设置/实施的选项:

  • Files - 例如在执行开始时read the value from file,当值发生变化时,write the new value to the file会覆盖旧值

  • 键值存储(例如MemcachedRedis) - 您需要安装将作为独立系统进程运行的memcached / redis服务器。然后,当它发生变化时,您将与read the valuewrite the value连接。 (注意这些可以配置为持久存储或非持久存储,请参阅下一点或解释)

  • APC cache - 它是键值存储的一个特例,它作为PHP扩展而不是外部服务。该想法仍然是reading / writing存储在其中的值。请注意,这不是持久性存储,这意味着当重新启动apache或php-fpm进程时,将清除缓存并丢失值。

  • Database(例如MySQLMongoDB)。同样,您必须安装数据库服务器并阅读如何使用它们。

肯定有更多选择,但这些都是首先要做的。