2016-02-19 2 views
0

Я создаю небольшое приложение, которое обрабатывает журнал и отображает его на клиенте. Однако, когда я добавляю строки в свой журнал, я теряю некоторые данные.Почему данные теряются в socket.io?

Вот соответствующий обработчик Python:

@socketio.on('Request logs') 
def handle_request_logs(): 
    logfile = '/path/to/some_log.log' 

    # gets last 25 lines from logfile 
    last_n_lines = tailer.tail(open(logfile), 25) 

    # sends the initial 25 lines 
    emit('Initial send', { 'lines' : last_n_lines }) 

    # emits lines that were appended to logfile 
    @copy_current_request_context 
    def tail(logfile): 
     for line in tailer.follow(open(logfile)): 
      print("About to emit {0}".format(line)) 
      emit('log', { 'line' : line }) 

    # emit added lines as they come 
    t = threading.Thread(target=tail, args=(logfile,)) 
    t.start() 

и вот JS, который получает 'log':

socket.on('log', function(data) { 
     alert("Got some data: ", data['line']); 
    }); 

Всякий раз, когда я добавить что-то к журналу (например echo 'hello, world!' >> /path/to/some_log.log), я вижу предупреждение о клиент с сообщением "Got some data: ". Однако мой сервер печатает "About to emit hello, world!".

Почему это происходит?

ответ

1

У вас есть запятая в вашем предупреждении (javascript). Вероятно, он должен быть + для конкатенации.

+0

Ugh ... Я ненавижу себя. – erip

Смежные вопросы