是否可以从浏览器(无服务器端代码)向本地网络上的计算机发送 LAN 唤醒命令。我完全控制了网络。我想通过 wifi 从平板电脑上运行的浏览器到同一 LAN 上的有线计算机。我找到了一些 Node.JS JavaScript 代码:https ://github.com/agnat/node_wake_on_lan/blob/master/wake_on_lan.js 但我不知道它是否可以在浏览器中运行。
4 回答
Nodejs 专门用于编写服务器端代码。如果没有服务器,您将无法做到这一点。但是,您可以购买像树莓派这样的小型计算机作为您的服务器。
你不得不:
- 买一台简单的小电脑,比如树莓派或类似的东西。(这台电脑需要一直打开)
- 在上面安装节点。
- 为覆盆子编写一些 javascript 以从 Internet 获取命令(如浏览器扩展),然后可以将本地“魔术包”发送到您要唤醒的计算机。
- 然后制作一个客户端程序。像浏览器扩展程序或可以将 http 内容发送到您的服务器(树莓派)的 android 应用程序。
要编写服务器代码,您可以使用https://www.npmjs.com/package/node-wol这是一个节点库。
您需要在系统调用和您的 Javascript 之间建立某种形式的接口,这些接口会发送一个“魔术包”。在我看来,如果没有某种形式的能够使用系统调用的后端巫术,您将无法做到这一点。以我的经验,Javascript 仅限于在客户端执行操作,并且能够与服务器端对话,但不能控制服务器端。
但话又说回来,我不是网络开发人员。我有限的网络经验告诉我,您需要一些东西来与您的操作系统对话,最终将发送 WoL 魔术包。
Node 是基于服务器端的,虽然它使用 Javascript 运行时环境,但它不会让你运行你没有权限的东西。
祖卢卡斯说的很对。你不能用纯 JavaScript 代码做到这一点。您可能会在这里找到一些东西: https ://github.com/hypery2k/cordova-wol-plugin 我敢打赌这将是您最好的尝试,无需付出太多努力。
您需要学习 PhoneGap,然后您将构建一个混合应用程序。但是,请注意:JavaScript 无法做到这一点。尽管您将编写 javascript 代码来执行此操作,但它会调用本机资源,并且不会在浏览器环境中运行