私は自分の質問に答えます。ウェブ・ソケットは、クライアント・ブラウザとウェブ・サーバとの間であろうと、サーバとサーバとの間の通信であろうと、双方向通信メカニズムを可能にする。
クライアントブラウザとWebサーバーの間にこの接続を確立する方法については多くのチュートリアルがありますが、2つのサーバー間の対話方法に関するドキュメントは非常に限られています。
1は、Djangoのチャンネルを設定し、すなわち127.0.0.1:8001
上の着信接続を聴いている場合だからあなたconsumers.pyは、そのような場所を任意の受信メッセージのあなたのルートws_messageとして、コードを持っているでしょう。それは単に端末に受信したものをエコーアウトします。あなたが他のサーバ(データを送信多分マイクロコントローラ)からの接続を確立したい場合は
from channels import Group
def ws_message(message):
print(message.content['text'])
Group('chat').send({
'text': 'user %s' % message.content['text'],
})
その後、次のコードは127.0.0.1:8001の指定されたアドレスにデータを送信します。
pip install websocket
server-socket.py
import websocket
import _thread as thread
import time
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print('Closed Connection')
def on_open(ws):
def run(*args):
for i in range(100):
time.sleep(1)
ws.send("%d" % i)
time.sleep(1)
ws.close()
print ("thread terminating...")
thread.start_new_thread(run,())
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://127.0.0.1:8001",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
それは非常に簡単です行うようにしてくださいするためにあなたがPython用のWebSocketのパッケージが必要となりますのでご注意ください。それは接続されたwebsocketに0-99の範囲の数値を送信します。
はい。チャンネルは、この目的のための最良のオプションです。また、この質問はあなたがタラを提供していないために話題にはなりません。 –
あなたの応答Rajaに感謝します。問題はコード関連ではなく、方法論に関連しているため、コードはありません。 –