gpt4 book ai didi

python - 在 Python 中强制重新加载 SimpleHTTP 服务器

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:59 26 4
gpt4 key购买 nike

我有一个用 Python 实现的非常简单的 HTTPServer。代码如下:

import SimpleHTTPServer
import SocketServer as socketserver
import os
import threading

class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
path_to_image = 'RGBWebcam1.png'
img = open(path_to_image, 'rb')
statinfo = os.stat(path_to_image)
img_size = statinfo.st_size
print(img_size)

def do_HEAD(self):
self.send_response(200)
self.send_header("Content-type", "image/png")
self.send_header("Content-length", img_size)
self.end_headers()

def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "image/png")
self.send_header("Content-length", img_size)
self.end_headers()
f = open(path_to_image, 'rb')
self.wfile.write(f.read())
f.close()

class MyServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
def __init__(self, server_adress, RequestHandlerClass):
self.allow_reuse_address = True
socketserver.TCPServer.__init__(self, server_adress, RequestHandlerClass, False)

if __name__ == "__main__":
HOST, PORT = "192.168.2.10", 9999
server = MyServer((HOST, PORT), MyHandler)
server.server_bind()
server.server_activate()
server_thread = threading.Thread(target=server.serve_forever)
server_thread.start()
while(1):
print "test"

如果我连接到给定的 IP 地址,页面将加载并且一切正常。现在,如果页面每 n 秒自动刷新一次就好了。我是 python 的新手,尤其是网络编码的新手。我找到了 LiveReload但是我无法理解如何将这两个库合并在一起。

谢谢你的帮助

最佳答案

如果您希望服务器告诉它刷新,您将需要连接到客户端。 HTTP 服务器意味着您已发送信息 (HTML),客户端将对其进行处理。除此之外没有任何交流。这将需要实现 AJAX 或 Websockets - 这两种协议(protocol)都允许频繁通信。

既然你不能交流,你应该自动刷新你最初发送的内容。在我们的示例中,我们假设我们希望页面每 30 秒刷新一次。这可以在 HTML 或 Javascript 中完成:

<meta http-equiv="refresh" content="30" />

setTimeout(function(){
window.location.reload(1);
}, 30000);

关于python - 在 Python 中强制重新加载 SimpleHTTP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43612471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com