Чтение из StreamReader при одновременной подаче событий python asnycio - PullRequest
0 голосов
/ 02 мая 2018

Я очень новичок в этой области Python, так что имейте это в виду.

У меня есть StreamReader с именем sock_reader и для чтения данных из него я использую это:

data = yield from self.sock_reader.read(1024)

Помимо этого, мне также нужно обрабатывать события всякий раз, когда данные принимаются. Я достигаю этого следующим образом:

self.sock_reader.feed_data = self.on_data

def on_data(self, data):
    code, length = struct.unpack('<ii', data[:8])
    payload = json.loads(data[8:].decode('utf-8'))

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

1 Ответ

0 голосов
/ 02 мая 2018

Ух ты, я уверен, что я тупой Я только что понял, что, устанавливая новые feed_data, я, вероятно, перезаписывал то, что использовалось для передачи данных в функцию чтения.

...