【问题标题】:Options for communication between nodejs server and PHP websitenodejs 服务器和 PHP 网站之间通信的选项
【发布时间】:2022-01-11 22:26:55
【问题描述】:

到目前为止,我使用 websockets 在 nodejs 和 php 之间进行通信。 我在 nodejs 中创建了一个 websocket 服务器,它正在侦听一些自定义端口。

然后在 php 脚本中,我使用stream_socket_client() 和相关函数作为客户端进行连接。 然后,每当我想从服务器获得某些东西时,我都会发送一条消息并期望得到带有数据的响应(作为 json 格式)。然后它将构建 html 以向用户显示该数据。

这可行,但它似乎不自然,我想知道是否有更好的选择。顾名思义,Websockets 是为 Web 设计的,但我将它用于本地服务器和脚本

我应该提到,服务器需要能够同时与多个客户端通信,因为一个网站可以有多个访问者。 nodejs websocket 模块提供了这种能力。但它不需要保持连接活跃,因为 php 脚本只会做它的事情并停止。

【问题讨论】:

  • 为什么需要 PHP? Node.js 可以做任何 PHP 做的事情,速度更快,可能更好。
  • 我想说的是类似的......为什么你有两种服务器端语言在运行,似乎是同一个应用程序的一部分?似乎有点像一场建筑噩梦。
  • 完全移动到“待办事项”列表中的节点。不幸的是,客户犹豫不决,所以我需要一次迈出一步。首先我将文件 i/o 和 db 移动到节点,然后最终也是 html

标签: php node.js communication


【解决方案1】:

让我们忽略你为什么同时使用Node.js 和PHP(这可能是你感觉不好的根源),专注于 RPC 问题。

在选择 RPC 方法时,您应该考虑并比较每种方法的不同之处,请参阅我的清单。

清单

这有助于我选择方法。

运行时:

  • 速度
  • 内存
  • 稳定性

开发时间:

  • 时间
  • 难度
  • 可测试性和/或可调试性

结论

如上所述,据我了解,您当前的 Web-Socket 方法已完成所有清单,例如:

运行时:

  • 速度:localhost 连接需要 0 mili-sec。
  • 内存:大约2 MB(每次请求后释放)。
  • 稳定性:Web-Sockets 在全球范围内使用,如果有任何东西是稳定的,那么它就是 local Web-Socket。

开发时间:

  • 时间:已经开发好了。
  • 难度:众所周知。
  • 可测试性和/或可调试性:可使用PHPUnit 和/或用于测试Node.js 代码的任何内容进行测试。

请继续使用 Web-Sockets, 因为即使您开发了某种自定义协议,它也会在显示的清单中破坏不止一个点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2011-02-26
    • 2012-11-30
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    相关资源
    最近更新 更多