2011|08|
2013|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|07|08|09|10|11|12|
2016|01|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|

2020-01-15 ボタンを押すと全てのクライアントのコンテンツが同時に代わるように改造した [長年日記]

GOによる簡単なWebSocketサーバの作り方 の"index.html"だけを変更して、ボタンを押すと全てのクライアントのコンテンツが同時に代わるように改造した。(文字表示はコメントアウトして消すこと)

稼働確認直後の、もっとも汚い状態のコードをアップしている。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>WebSocket Server</title>
  </head>
  <body>
 
 
    <input id="Button1" type="button" value="スタンバイ中" onclick="onButtonClick1();" />
    <input id="Button2" type="button" value="待機中" onclick="onButtonClick2();" />
    <input id="Button3" type="button" value="移動中" onclick="onButtonClick3();" />
    
    
    <!--
    <input id="input" type="text" />    
    -->
 
    <p id="input"></p>
    <p id="input1"></p>
    <p id="input2"></p>
    <p id="input3"></p>
 
    <!--
    <button onclick="send()">Send</button>
    -->
    <!--
    <pre id="output">outputのエリア</pre>
    -->
 
    <pre id="output"></pre>    
 
    <!--
    <img id="image_place" src="http://192.168.0.88:8686/red.html"/>
 
    <img id="image_place" src="http://192.168.0.88:8686/image3.jpg"/>
    -->
 
    <iframe id="image_place" src="http://192.168.0.88:8686/red.html" width="100%" height="700"></iframe>
 
    
    <script>
      var input1 = document.getElementById('input1');
      var input2 = document.getElementById('input2');
      var input3 = document.getElementById('input3');      
 
      var output = document.getElementById('output');
      var socket = new WebSocket("ws://" + window.location.host + "/chat");
      
      // 江端追記
      // img要素を取得する
      var img = document.getElementById("image_place");
      // 表示する画像番号
      var idx = 1;
      
      // 江端追記ここまで
      
      socket.onopen = function() { 
      // output.innerHTML += "Connection OK\n";
      };
      
      socket.onmessage = function(e) {
      // output.innerHTML += "Get message from server:" + e.data + "\n";
 
      var obj = JSON.parse(e.data); // JSONオブジェクトに変換
 
      // output.innerHTML += "Get object :" + obj.Message + "\n";
      
          
      // 江端追記
      
      //idx++;
      //if (idx > 3) {
      //idx = 1;
      //}
      
      //output.innerHTML += idx + "\n";
      //output.innerHTML += "before\n";
 
      
      // switch(e.data){
      switch(obj.Message){      
      case '1':
      // console.log('1です');
      // document.write("1です<br/>");
      // document.getElementById("output").innerHTML += "1です";
 
      // img.src = "http://kobore.net/soft/wstest32/image1.jpg";
      // img.src = "http://192.168.0.88:8686/image1.jpg";
      img.src = "http://192.168.0.88:8686/red.html";
 
      break;
 
      case '2':
      // console.log('2です');
      // document.write("2です<br/>");
      // document.getElementById("output").innerHTML += "2です";
      // img.src = "http://192.168.0.88:8686/image2.jpg";
      img.src = "http://192.168.0.88:8686/yellow.html";
 
      break;
 
      case '3':
      // console.log('3です');
      // document.write("3です<br/>");
      // document.getElementById("output").innerHTML += "3です";
      // img.src = "http://192.168.0.88:8686/image3.jpg";
      img.src = "http://192.168.0.88:8686/blue.html";      
 
      break;
      }
 
      // img要素のsrcに画像ファイル名を設定する
      //img.src = "image" + idx + ".jpg";
      // img.src = "http://192.168.101.1:8686/image" + idx + ".jpg";
      //img.src = "http://192.168.0.88:8686/image" + idx + ".jpg";
 
      
      // output.innerHTML += "after\n";
      
      // 江端追記ここまで
      
      };
 
 
      //function send() {
      //  socket.send(JSON.stringify( 
      //  {
      //     message: input.value
      //  }
      //  ));
      //  input.value = "";
      //};
 
      function onButtonClick1(){
        input1.value = "1";
        socket.send(JSON.stringify( 
        {
           message: input1.value
        }
        ));
        input1.value = "";
      };
 
      function onButtonClick2(){
        input2.value = "2";
        socket.send(JSON.stringify( 
        {
           message: input2.value
        }
        ));
       input2.value = "";
      };
 
      function onButtonClick3(){
        input3.value = "3";      
        socket.send(JSON.stringify( 
        {
           message: input3.value
        }
        ));
       input3.value = "";
      };
    </script>
  </body>
</html>
 
 
 

"./static/red.html 等は、wstest4に入っている