Raspberry Pi 3 & Python 開発ブログ☆彡

Raspberry Pi 3の使い方、設定をわかりやすく解説。Raspberry Pi3 Model B(Element14版)、Raspbian 8.0(NOOBS Ver1.9.2)を使用して開発中。

【スポンサーリンク】

WebSocket通信の仕方(クライアント側)

【スポンサーリンク】

前回からの続きです。今回はWebSocketのクライアント側のコードを紹介します。

モジュールのインストール

下記ページのモジュールを使います。インストールは、pipでコマンドを実行します。

https://github.com/Pithikos/python-websocket-server

sudo pip3 install websocket-server

クライアント側のコード(wsclient.py)

import time
from websocket import create_connection
ws = create_connection("ws://192.168.1.10:9999/")

While True: ws.send("Hello, World")
time.sleep(1)
result =  ws.recv()
print("Received '%s'" % result)
time.sleep(1)

ws.close()

それではコードの説明をしていきます。難しくありませんね。

・ws = create_connection("ws://192.168.1.10:9999/")
⇒サーバーのIPアドレス、ポートを指定してクラスをnewし、サーバーと接続します。

・ws.send("Hello, World")
⇒サーバーにデータを送信します。

・result =  ws.recv()
⇒サーバーからデータを受信します。

・ws.close()
⇒今回のサンプルで無限ループにしていますので、この処理に到達しませんが、サーバーとの接続をクローズします。

動作確認

wscatという簡単にwebsocket通信ができるアプリがありますので、それを使って動作確認をします。下記のコマンドでインストールします。npmを先にインストールする必要があります。

sudo apt-get install npm
sudo npm install -g wscat

これでwscatのインストールは完了です。それでは動作させていきます。3つターミナルを立ち上げます。

・ターミナル1 ⇒ 前回ブログのwsserver.pyを起動

・ターミナル2 ⇒ 今回ブログのwsclient.pyを起動

・ターミナル3 ⇒ 下記のコマンドを実行します。

wscat -c ws://192.168.1.10:9999

これでWebSocketサーバーと接続できます。接続すると、"Hello, World"と1秒おきに表示されると思います。ターミナル3で適当な文字列をプロントから入力してみてください。ターミナル2に送信した文字が表示されるはずです。

次回は最終目標のWebページの値をリアルタイムで更新する方法を紹介したいと思います。