如何从 PHP 文件启动 Node.js
Posted
技术标签:
【中文标题】如何从 PHP 文件启动 Node.js【英文标题】:How to Start Node.js From a PHP File 【发布时间】:2019-12-10 19:52:36 【问题描述】:我正在为 twitch 编写一个聊天机器人。我需要从 php 中获取数据并将其发送到bot.js
(节点文件)。然后我需要从我的 PHP 文件开始我的bot.js
(当用户点击按钮时)。
我的问题:
-
如何将变量发送到
bot.js
以及如何每 5 秒更新一次。
如何从 PHP 启动 node.js
文件?
【问题讨论】:
【参考方案1】:问题一:
第 1 点: 如果你使用命令行,你可以像这样传递变量
node ./bot.js arg1 arg2 arg3
然后以这种方式从节点 js 脚本访问您的变量。
process.argv
argv 参数将是这样的数组 ['节点', './bot.js', 'arg1', 'arg2', 'arg3' ]
第 2 点:
请告诉我你想要什么的具体细节。您的机器人是一次性脚本吗?如果你想从 php 中每 5 秒调用一次脚本,那么你只需要 make cronjob 来调用 php 脚本。
问题 2:
您可以尝试使用 shell_exec 函数从 php 调用节点脚本。例如
shell_exec("node ./bot.js arg1 arg2 arg3");
【讨论】:
我们是航空频道。在航空领域,我们有一个呼号。我需要使用呼号获取数据。(和 PHP)我需要将数据发送到节点。我必须使用 PHP 来获取数据。并且数据必须重新更新5秒。 如果你需要 bot 随时待命,你可以使用 redis pub sub。它就像在 nodejs 和 php 之间进行通信的通道。 cronjob 调用 php 脚本。 php 通过 redis publish 发布数据,您的机器人使用 redis subscribe 订阅数据。另一种方法是在 bot 脚本中添加接收器 Web 服务器,并将 php 的 post 数据发送到 bot Web 服务器(这不安全)。 我们不会将机器人添加到任何主机中。我理解了第一种方法,我会尝试的。但是我该如何尝试第二个?没看懂。 第二个答案将从 php 调用 shell 命令。它是从 php 执行的。确保你的电脑安装了 nodejs。 谢谢!我会试试的。以上是关于如何从 PHP 文件启动 Node.js的主要内容,如果未能解决你的问题,请参考以下文章