我想围绕服务器发送的事件让我的头。 我的网站的其余部分使用CherryPy的服务,所以我想他们的工作在这个平台上了。
我使用揭露上证所的方法:
@cherrypy.expose
def interlocked(self, _=None):
cherrypy.response.headers["Content-Type"] = "text/event-stream;charset=utf-8"
if _:
data = 'retry: 400\n'
while not self.interlockUpdateQueue.empty():
update = self.interlockUpdateQueue.get(False)
data += 'data: ' + str(update) + '\n\n'
return data
else:
def content():
while not self.interlockUpdateQueue.empty():
update = self.interlockUpdateQueue.get(True, 400)
data = 'retry: 400\ndata: ' + str(update) + '\n\n'
yield data
return content()
interlocked._cp_config = {'response.stream': True, 'tools.encode.encoding':'utf-8'}
测试对铬(WIN 7),铬(Ubuntu的12.04),这符合流和使用它的页面正常工作。 但是它只能一个系统中的时间。 如果我有两个镀铬和铬读取数据流,只有第一个得到流,另一个将一无所获。 我怎么给两个系统同时流访问?