Skip to content

To start the PC, for example, smartphone. Remote switch to Wake on LAN to a PC via WebSocket.

Notifications You must be signed in to change notification settings

toshirot/remote-ws-wol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

remote-ws-wol

To start the PC, for example, smartphone. Remote switch to Wake on LAN to a PC via WebSocket.

@see スマホでPC起動するリモコンをWebSocket+WOLで作ってみた https://web.archive.org/web/20160623215941/http://ngw.jp/~tato/wp/?p=3826

スマホでPC起動するリモコンをWebSocket+WOLで作ってみた
※スマホの「192.168.1.4」のボタンを押すとPCのファンが回り始めます。


Install

$ cd ./YourDir
$ npm i remote-ws-wol

remote-ws-wol directory has been generated in node_modules. インストールするとYourDirより上の階層のnode_modulesにremote-ws-wolができています。

node_modules/
remote-ws-wol/
sample/
app.js
public_html/
wol.htm
README.md
index.js
package.json
node_modules/

sampleディレクトリ内のファイルを使いたい場所において内容を下記のように自分用に書き換えます。 app.jsはWebからアクセスできない場所に置き、wol.htmはWebからアクセスできる場所に置きます。

Server Setting Sample

app.js
var rww = require('remote-ws-wol');

var option = {

//WebSocketサーバー
url: '192.168.1.22'
,port: 8503

//起動したいマシンのMacアドレスを調べて下記を書き換えてください
//名前はリモートから呼び出すための仮称でIPである必要はありません
,lists: {
   '192.168.1.4': 'xx:xx:xx:xx:xx:xx'
  ,'subPC'      : 'xx:xx:xx:xx:xx:xx'
  ,'WiFi2'      : 'xx:xx:xx:xx:xx:xx'
} 

//※必要ならIPやキーワードやSSL接続などで安全を確保すること

//接続を許可するクライアントIPアドレス
,allowIP: ['*'] //'*'は全部許可

//命令実行を許可するキーワード
,keyword: '*' //'*'は全部許可

//WakeUpしたら最大1分で接続を切る
,timeout: 1000*60

};

//実行
var ws = rww.conn( option );

Client Sample

wol.htm
<html>
<meta charset=utf-8>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
<title>
remote-ws-wol
</title>
<style>
body{
  background-color: #fff;
  color: #000;
  font-family:'Lucida Grande','Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3',Meiryo, メイリオ, sans-serif;
}
.swt{
  margin: 1%;
  padding:48px 88px;
  font-size:40px;
  display: none;
  color: #000;
  background-color: #eee;
  width: 98%;

} button{ border-radius: 2px; /* CSS3 /
-webkit-border-radius: 2px; /
for Safari, Chrome /
-moz-border-radius: 2px; /
for Firefox */
} #info{ margin: 12px; font-size:48px; } </style> <body>

<button id=on1 class="swt"> 192.168.1.4 </button> <button id=on2 class="swt"> subPC </button>

<div id=info>status</div> <script>

//接続します var ws = new WebSocket('ws://192.168.1.22:8503');

//接続時の処理 ws.onopen = function () { info.innerHTML='接続しました' on1.style.display='block' on2.style.display='block' }; //エラー時の処理 ws.onerror = function (error) { info.innerHTML='Error: '+ error }; //クローズ時の処理 ws.onclose = function (error) { info.innerHTML='切断しました'; }; //サーバーからメッセージ着信時の処理 ws.onmessage = function (e) {

var data = JSON.parse(e.data);
info.innerHTML=data.msg;

if(data.name==="192.168.1.4"){
  on1.style.color = 'orange';
} else if(data.name==="subPC"){
  on2.style.color = 'orange';
}

setTimeout(function(){
  on1.style.color =
  on2.style.color = '#000';
  
},2000)

};

//クリック時の処理 on1.onclick=function(){ ws.send(JSON.stringify({"name":"192.168.1.4"})); } on2.onclick=function(){ ws.send(JSON.stringify({"name":"subPC"})); }

</script> </body> </html>


License

MIT

About

To start the PC, for example, smartphone. Remote switch to Wake on LAN to a PC via WebSocket.

Resources

Stars

Watchers

Forks

Packages

No packages published