def socket_connect(): if request.environ.get("wsgi.websocket"): ws = request.environ["wsgi.websocket"] while True: try: message = ws.receive() message = json.loads(message) # when login, the socket + email is saved if "email" == message["type"]: email = message["data"] if email in current_sockets: data = {'type': 'logout'} current_sockets[email].send(json.dumps(data)) current_sockets[email] = ws # when stats update is requested elif "stats" == message["type"]: email = logged_in_users.get(message["token"]) data = { 'type': 'stats', 'messages': len(database_helper.get_user_messages(email)), 'users': len(logged_in_users), 'pageviews': database_helper.get_user_page_views(email) } ws.send(json.dumps(data)) except WebSocketError: break
def send_fresh_stats_to_users(): for email in current_sockets: data = { 'type': 'stats', 'messages': len(database_helper.get_user_messages(email)), 'users': len(logged_in_users), 'pageviews': database_helper.get_user_page_views(email) } current_sockets[email].send(json.dumps(data))