1
- # set this to 'threading', 'eventlet', or 'gevent'
2
- async_mode = 'threading'
3
-
4
- if async_mode == 'eventlet' :
5
- import eventlet
6
- eventlet .monkey_patch ()
7
- elif async_mode == 'gevent' :
8
- from gevent import monkey
9
- monkey .patch_all ()
1
+ # set async_mode to 'threading', 'eventlet' or 'gevent' to force a mode
2
+ # else, the best mode is selected automatically from what's installed
3
+ async_mode = None
10
4
11
5
import time
12
- from threading import Thread
13
6
from flask import Flask , render_template
14
7
import socketio
15
8
@@ -24,7 +17,7 @@ def background_thread():
24
17
"""Example of how to send server generated events to clients."""
25
18
count = 0
26
19
while True :
27
- time .sleep (10 )
20
+ sio .sleep (10 )
28
21
count += 1
29
22
sio .emit ('my response' , {'data' : 'Server generated event' },
30
23
namespace = '/test' )
@@ -34,8 +27,7 @@ def background_thread():
34
27
def index ():
35
28
global thread
36
29
if thread is None :
37
- thread = Thread (target = background_thread )
38
- thread .start ()
30
+ thread = sio .start_background_task (background_thread )
39
31
return render_template ('index.html' )
40
32
41
33
@@ -95,14 +87,14 @@ def test_disconnect(sid):
95
87
96
88
97
89
if __name__ == '__main__' :
98
- if async_mode == 'threading' :
90
+ if sio . async_mode == 'threading' :
99
91
# deploy with Werkzeug
100
92
app .run (threaded = True )
101
- elif async_mode == 'eventlet' :
93
+ elif sio . async_mode == 'eventlet' :
102
94
# deploy with eventlet
103
95
import eventlet
104
96
eventlet .wsgi .server (eventlet .listen (('' , 5000 )), app )
105
- elif async_mode == 'gevent' :
97
+ elif sio . async_mode == 'gevent' :
106
98
# deploy with gevent
107
99
from gevent import pywsgi
108
100
try :
@@ -116,4 +108,4 @@ def test_disconnect(sid):
116
108
else :
117
109
pywsgi .WSGIServer (('' , 5000 ), app ).serve_forever ()
118
110
else :
119
- print ('Unknown async_mode: ' + async_mode )
111
+ print ('Unknown async_mode: ' + sio . async_mode )
0 commit comments