Ejemplo n.º 1
0
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': ''})
Ejemplo n.º 2
0
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}))