我想写一个Web应用程序,以发挥狡猾的引擎下棋。 我并不陌生于PHP和JavaScript,但必须学习如何与服务器进程交互:Web应用程序和/或(jQuery)ajax如何与运行在服务器上的(linux)程序双向交互?
目前我正在开发(Apache)本地主机。 Crafty安装在我的Ubuntu PC上。 这个着名的国际象棋引擎没有GUI,它通过命令在terminal运行
$ / usr / games / crafty
所以你可以对它下棋,甚至看到它的计算:
我可以通过使用函数proc_open()或exec()使PHP运行Crafty,并且我发现大多数文档声明输出stream应该是一个文件..但是我想我不想要这样的设置,因为那么网页应该是constanty轮询该文件(如通过ajax),看看是否有一些新的数据被追加,对吗?
Crafty如何直接与网页交谈,说“我计算了另一个变化”或“我决定了一个动作”等等,然后在网页上显示这个信息,并让用户给出一些反动,就像在terminal中一样。 是不是可以使用一些会议/stream/监听器?
我根本没有线索,有谁能指出我正确的方向?
我建议你使用fifos和&
运算符 – 这是为什么:
所以我会做的是这样的:
mkfifo
的FIFO – 你可以从PHP或从壳做到这一点 /usr/games/crafty <stdin.fifo >stdout.fifo 2>stderr.fifo &
stdin.fifo
stdin.fifo
,然后stream_select()