У меня странная проблема. После прочтения о websocket-клиенте, кажется, довольно просто, отправлять данные через websocket.send()
и получать через recv()
.
Я настроил websocket для чтения и отправки двоичного файла. Ниже приведены коды
ws = websocket.WebSocket()
ws.connect(uri)
text_list = list()
# setup the receiving portion
receiving_tread = threading.Thread(target=thread_receiving, args=(ws, text_list))
receiving_tread.start()
ws.send_binary([48]) # telling server file has started
f = open(binary_file, 'rb')
chunk = f.read(8000)
while chunk != b'':
ws.send(chunk)
time.sleep(0.5)
chunk = f.read(8000)
ws.send_binary([49]) # tell server file has ended
Процесс получения данных:
def thread_receiving(ws, text_list):
data = json.loads(ws.recv())
text_list.append(data)
Я знаю, что данные отправляются, потому что я получаю первую часть возвращаемых данных, а затем останавливается. Так что я получаю только 1 возврат, и как-то recv()
перестает слушать. Примечание. У меня нет доступа к серверу или к веб-сокету сервера, поэтому мне приходится устранять неполадки со стороны клиента.
Может кто-нибудь сказать мне, что я делаю неправильно?