正在寻找一些指导或建议。
我在Web服务器上设置了Django通道,该通道允许两个用户使用Redis和Websocket在彼此之间聊天。
如何设置独立的python脚本,以便它可以通过用户在Django中发送的websocket消息进行通信并接受命令。
目标是通过Django渠道websockets控制此独立的python脚本。 python脚本运行物理马达,因此一些示例函数为Start()和Stop()。
编辑:看起来我想要的是设置celery以控制python脚本,但是让django频道在t开始和停止时控制celery应用程序:https://vincenttide.com/blog/1/django-channels-and-celery-example/
答案 0 :(得分:0)
您可以使用python编写一个连接到服务器的websocket客户端。有很多方法可以做到这一点。例如,您可以使用库websocket
示例代码如下:
#!/usr/bin/env python
import asyncio
import websockets
ws_url = "ws://domain_of_your_server:8000/ws/"
async def command_receiver():
async with websockets.connect(ws_url) as websocket:
while True:
message = await websocket.recv()
await websocket.send("Received the command '{message}'")
if message == "start":
# run the start command
...
elif message == "stop":
# run the stop command
...
else:
await websocket.send("Unknown command")
asyncio.get_event_loop().run_until_complete(command_receiver())