我在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-Adress页面加载,一切都很好。现在,如果该页面每秒自动刷新每秒钟,那就太好了。我是Python的新手,特别是Web编码的新手。我发现了Livereload,但是我无法围绕如何将这两个图书馆合并在一起。
谢谢您的帮助
如果您希望服务器告诉刷新,则需要与客户端的连接。HTTP服务器表示您已发送信息(HTML(,客户端将对其进行处理。除此之外没有沟通。这将需要实现Ajax或Websocket-两种允许频繁通信的协议。
由于您无法交流,因此您应该在最初发送的内容中自动化刷新。在我们的示例中,我们说我们希望该页面每30秒刷新一次。这可以在HTML或JavaScript中进行:
<meta http-equiv="refresh" content="30" />
或
setTimeout(function(){
window.location.reload(1);
}, 30000);