我正在开发一个基于回合制的PHP5网页游戏。
这是一款非常简单的游戏,一种棋盘游戏:两个人加入“会话”,他们一直玩,直到其中一人获胜。
我的问题简而言之:
用户A和用户B玩游戏。
用户A轮到他了
但我怎么能通知用户B这个?
我的意思是,现在服务器必须与其他用户(非活动用户)进行通信,而不是发起请求的用户。
我知道这可以使用某种定期的AJAX调用来实现,该调用可以检查对手是否完成了他的回合等,但这样的事情会产生大量的请求。
难道没有更好的方法来解决这个问题吗?
我在考虑这样的事情:
这是否可能以某种方式使用PHP和彗星风格的请求?或者有更好的方法吗?
任何帮助将不胜感激!
提前致谢!
答案 0 :(得分:2)
当前正在运行的游戏/转弯的内存数据库,以及每1.5秒左右用户B的一次检查,不会真正生成巨大的数量的请求或服务器负载。< / p>
根据适合您游戏的内容,您甚至可以拥有7s,5s,3s,2s,1s,1s等轮询方案。
如果转弯完成时你只是touch
会话文件,你甚至可以完全退出PHP,并检查最后修改过的客户端。
答案 1 :(得分:0)
Php套接字!
http://php.net/manual/en/book.sockets.php
server listen
client_a connect
client_b connect
client_a send start game to server
client_a send move to server
server send play client_b
[...]