用pcnt_signal / posix_kill替换Websocket?

时间:2019-07-09 10:08:15

标签: php websocket signals

我想将在线球员分配给两个团队,两个团队在几分钟内进行注册。每个玩家都应该总是能够看到当前的玩家列表。 最好的选择可能是websockets或服务器发送的事件,但是在IE / Edge上均不可用。

作为替代,我正在考虑一种信号“事件”机制:

  • 无论何时有新玩家注册,他的信息(包括“ register.php”脚本的pid)都存储在数据库中(无论如何我还是需要)。
  • register.php然后向数据库中当前存在的所有其他进程发送posix_kill(pid,SIGUSR1)“消息”。
  • 通过ajax调用完成注册,超时时间约为30秒(我认为这称为“长轮询”?)
  • register.php在sleep(30)调用之后执行pcntl_signal(SIGUSR1,handler),其中handler将创建包含当前团队成员的响应;如果30秒后仍未收到信号,则显示“无变化”响应。

  • 在客户端超时后,将发送一个新的ajax调用(仅不进行注册和posix_kill调用)以再次等待更新...

在我将时间浪费在不必要的复杂代码或重新发明一些标准代码之前:

  • 您认为这行得通吗?并发大约100-1000个用户是否足够有效?
  • 也许这甚至是标准方式,并且有一些示例代码?
  • 是否有更简单的方法来实现此目的(在服务器上使用php)?
  • 如果在IE或Edge用户的情况下仍需要更换,我应该完全使用websockets / SSE吗?

0 个答案:

没有答案