我想写一个Web应用程序来对抗引擎Crafty下棋。我不是PHP和javascript的新手,但必须学习如何与服务器进程交互:Web应用程序和/或(jQuery)ajax如何与服务器上运行的(linux)程序双向交互?
此时我正在开发(Apache)本地主机。 Crafty安装在我的Ubuntu PC上。这个着名的国际象棋引擎没有GUI,它通过命令
在终端中运行$ / usr / games / crafty
所以你可以对它下棋,甚至可以看到它的计算:
我可以使用函数proc_open()或exec()使用Crafty运行PHP,并且大多数文档我发现输出流应该是一个文件..但我想我不想要这样的设置,因为然后网页应该不断轮询该文件(例如,通过ajax)以查看是否附加了一些新数据,对吗?
Crafty如何直接与网页对话,说“我已经计算了另一个变体”或“我已经决定了一个动作”等,然后在网页上显示此信息并让用户进行一些反击,就像在终端。是不是可以使用一些会话/流/监听器?
我根本没有任何线索,任何人都能指出我正确的方向吗?
答案 0 :(得分:1)
我建议您使用fifos和&
运算符 - 这就是原因:
所以我会做的是:
mkfifo
准备一对FIFO - 您可以从PHP或shell中执行此操作/usr/games/crafty <stdin.fifo >stdout.fifo 2>stderr.fifo &
stdin.fifo
stdin.fifo
,然后stream_select()