【发布时间】:2015-11-23 14:24:12
【问题描述】:
有没有办法在客户端调用外部程序并与之“对话”?
例如,如果我有一个 Node.js 服务于 AngularJS 或任何其他框架,我希望用户按下浏览器上的一个按钮,客户端上先前安装的程序开始运行并发送回客户端一些消息...
我能做到吗?
【问题讨论】:
-
如果您还为用户使用的浏览器编写客户端应用程序和扩展程序/插件,以使您的 web 应用程序与桌面应用程序对话,则可以。
-
执行此类操作的一种方法是通过安装应用程序时设置的自定义协议链接。例如,您可以通过
steam://friends之类的链接启动 Steam 好友窗口。用户必须允许此操作。至于在用户机器上运行任意可执行文件,那是不可能的(也不安全)。 -
我会考虑结合使用socket.io 和节点进程
require('child_process').exec。后者具有事件发射器,您可以轻松地将其连接到套接字以跟踪本机可执行文件的进度 -
@ShanShan 我实际上是因为它们的不稳定性而想逃离扩展......
-
@Joe 我想到了,但随后该进程将在服务器端运行,不是吗?它只是由客户调用。我希望该过程在客户端计算机上运行。就像一个 C++ 应用程序。
标签: javascript angularjs node.js