-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebsocket.py
40 lines (33 loc) · 1.04 KB
/
websocket.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import uuid
import tornado.ioloop
import tornado.web
import tornado.websocket
class EchoWebSocket(tornado.websocket.WebSocketHandler):
waiters = set()
user = None
def open(self):
EchoWebSocket.waiters.add(self)
print "WebSocket opened"
def on_close(self):
try:
EchoWebSocket.waiters.remove(self)
except ValueError:
pass
print "WebSocket closed"
def on_message(self, message):
if message.startswith('user:'):
print 'User logged: '+message
self.user = message.split(':')[1]
self.user_uuid = str(uuid.uuid4())
return
if message == 'refresh' and self.user is not None:
print 'refreshing...'
for w in EchoWebSocket.waiters:
if w != self and w.user == self.user:
w.write_message('refresh')
application = tornado.web.Application([
(r'/', EchoWebSocket),
])
if __name__ == '__main__':
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()