reduce ping events (Fix #1685) (#1699)

Closes #1685
This commit is contained in:
Frank
2020-11-19 09:27:48 +08:00
committed by GitHub
parent 44a588869e
commit 1883c62cf5

View File

@@ -53,13 +53,12 @@ class EventManager(object):
def subscribe(self, channel="ctf"):
q = defaultdict(Queue)
self.clients[id(q)] = q
try:
while True:
try:
# Immediately yield a ping event to force Response headers to be set
# or else some reverse proxies will incorrectly buffer SSE
yield ServerSentEvent(data="", type="ping")
while True:
try:
with Timeout(5):
message = q[channel].get()
yield ServerSentEvent(**message)
@@ -105,13 +104,12 @@ class RedisEventManager(EventManager):
def subscribe(self, channel="ctf"):
q = defaultdict(Queue)
self.clients[id(q)] = q
try:
while True:
try:
# Immediately yield a ping event to force Response headers to be set
# or else some reverse proxies will incorrectly buffer SSE
yield ServerSentEvent(data="", type="ping")
while True:
try:
with Timeout(5):
message = q[channel].get()
yield ServerSentEvent(**message)