【问题标题】:How to Start Node.js From a PHP File如何从 PHP 文件启动 Node.js
【发布时间】:2019-12-10 19:52:36
【问题描述】:

我正在为 twitch 编写一个聊天机器人。我需要从 PHP 中获取数据并将其发送到bot.js(节点文件)。然后我需要从我的 PHP 文件开始我的bot.js(当用户点击按钮时)。

我的问题:

  1. 如何将变量发送到 bot.js 以及如何每 5 秒更新一次。
  2. 如何从 PHP 启动 node.js 文件?

【问题讨论】:

    标签: javascript php html 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。
    • 谢谢!我会试试的。
    猜你喜欢
    • 2012-07-10
    • 1970-01-01
    • 2014-07-28
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多