如何从 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的主要内容,如果未能解决你的问题,请参考以下文章

macOS 中如何安装 Node.js

Node.js node_modules 相互干扰

如何使用lessc编译.less文件

Node.js 简介

node.js node-fetch - 传递附加到url的查询字符串的问题

如何从 PHP 文件启动 Node.js