def connect_socket(): if request.environ.get('wsgi.websocket'): ws = request.environ['wsgi.websocket'] connection_data = ws.receive() connection_id = json.loads(connection_data) email = connection_id['email'] print("connection_data: "+str(connection_data)) if not id_socket.has_key(str(email)): id_socket[str(email)] = ws else: return json.dumps({'success': False, 'message': 'User already logged', 'data': ''}) # SENDING LIVE DATA liveData = {} messages = json.loads(database_helper.get_number_post(email)) messages = messages['data'] liveData['messages'] = messages views = json.loads(database_helper.get_number_views(email)) views = views['data'] liveData['views'] = views users = json.loads(database_helper.get_number_connected_users()) users = users['data'] print(users) liveData['users'] = users print("Sending data") ws.send(json.dumps({'loggedOut': False, 'liveData': True, 'update': False, 'success': True, 'message': "Live Data", 'data': liveData})) # Active wait and listen on the socket while True: print("Waiting") msg = ws.receive() if msg == None: print('id_socket closing : ' + id_socket[str(email)]) del id_socket[str(email)] ws.close() print('Websocket connection ended') return json.dumps({'success': True, 'message': 'Websocket connection ended', 'data': ''}) else: return json.dumps({'success': False, 'message': 'Websocket not received', 'data': ''})
def send_notification(): liveData = {} print("Sending update data") for email, ws in id_socket.iteritems(): messages = json.loads(database_helper.get_number_post(email)) messages = messages['data'] liveData['messages'] = messages views = json.loads(database_helper.get_number_views(email)) views = views['data'] liveData['views'] = views users = json.loads(database_helper.get_number_connected_users()) users = users['data'] liveData['users'] = users ws.send(json.dumps({'loggedOut': False, 'liveData': True, 'update': True,'success': True, 'message': "Updating data", 'data': liveData}))