【问题标题】:Live update image while using socketio使用 socketio 时实时更新图像
【发布时间】:2016-05-28 01:50:03
【问题描述】:

我正在使用 python 将每第 n 个图像从科学相机推送到网页。网页使用.replace() 更新图像。需要注意的是,这不是网络摄像头,而是科学摄像头。我正在使用开发者软件每隔 n 秒将图像保存到服务器,然后由客户端抓取。

我正在使用 HTML、JavaScript、Jquery 和 python。

我还有一堆网络套接字(在客户端使用 socketio,在服务器端使用烧瓶),这样当单击按钮时,它会发出命令来移动连接到服务器的电机。发生这种情况时,图像会停止更新,直到服务器上的发出函数完成。

我曾考虑过使用后台线程每隔 n 秒将图像推送到服务器(基于用户对刷新率的请求),但不确定这是否会有所帮助......或者从哪里开始,真的。

提前致谢。

【问题讨论】:

    标签: javascript websocket flask-socketio


    【解决方案1】:

    我假设您正在运行一个 eventlet 或 gevent Web 服务器,因为您提到您正在使用 WebSocket。

    每当您有一个可能很长的任务时,无论是 HTTP 请求还是 Socket.IO 事件处理程序,您都必须确保它是异步完成的,这样 Web 服务器才不会被阻塞并可以继续响应。

    您没有解释如何处理您的电机运动,但听起来您可能需要将其放在后台线程(绿色线程,而不是常规 Python 线程)中,并经常调用 sleep() 以便其他协程有机会在 bg 线程运行时运行。我认为这将使图像继续流动。

    【讨论】:

    • 谢谢。你是对的,因为我正在使用 gevent。电机连接到服务器(即 windows 盒子),我使用一个简单的 python 函数来移动电机。然后我有一个while循环,当电机移动时,它会进行一次迷你睡眠,然后当它不再移动时,它会发出“移动完成”位。有趣的是,当我纯粹用文本来测试这一切以模仿实际的电机运动时,它似乎做得很好,没有任何问题或错误。但我需要研究异步运行它,以及你提到的“绿色线程”。
    猜你喜欢
    • 2021-12-09
    • 1970-01-01
    • 2023-02-13
    • 2013-08-18
    • 1970-01-01
    • 2020-08-04
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多