teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

testsub.pyの例追加

2021/08/01 08:41

投稿

__horito
__horito

スコア364

answer CHANGED
@@ -23,4 +23,34 @@
23
23
  };
24
24
  })
25
25
  </script>
26
+ ```
27
+
28
+ testsub.pyの例
29
+ ```python
30
+
31
+ #!/usr/bin/env python
32
+ # coding:utf-8
33
+ from websocket_server import WebsocketServer
34
+ from time import sleep
35
+ import RPi.GPIO as GPIO
36
+ import time
37
+
38
+ GPIO.setmode(GPIO.BCM)
39
+ GPIO.setup(14, GPIO.OUT)
40
+ GPIO.setup(27, GPIO.IN, GPIO.PUD_DOWN)
41
+
42
+
43
+ def sendMessage(client, server):
44
+ while True:
45
+ if GPIO.input(27) == 0:
46
+ print("LED消灯中")
47
+ time.sleep(1)
48
+
49
+ elif GPIO.input(27) == 1:
50
+ print("LED点灯中")
51
+ time.sleep(1)
52
+
53
+ server = WebsocketServer(9002, host="192.168.43.57")
54
+ server.set_fn_new_client(sendMessage)
55
+ server.run_forever()
26
56
  ```

1

修正例の提示

2021/08/01 08:41

投稿

__horito
__horito

スコア364

answer CHANGED
@@ -1,2 +1,26 @@
1
1
  まずpythonサーバーのポートが被ってますので被らないように設定する必要があります。
2
- あとはpythonサーバーを1つにまとめるかJSクライアントを2つにするかですかね。
2
+ あとはpythonサーバーを1つにまとめるかJSクライアントを2つにするかですかね。
3
+
4
+ JSクライアントを2つにする
5
+ ```
6
+ <script>
7
+ $(function(){
8
+ var ws1 = new WebSocket("ws://192.168.43.57:9001/");
9
+ var ws2 = new WebSocket("ws://192.168.43.57:9002/");
10
+ $('#btn').on('click', function () {
11
+ if($('#btn').text() == "OFF") {
12
+ $('#btn').text("ON")
13
+ ws1.send('led_on');
14
+ } else {
15
+ $('#btn').text("OFF")
16
+ ws1.send('led_off');
17
+ }
18
+ });
19
+
20
+ ws2.onmessage = function (message) {
21
+ $('#test').append(message.data);
22
+ $('#test').css('background-color', 'red');
23
+ };
24
+ })
25
+ </script>
26
+ ```