При отправке строки с выводом websocket-client указывает, что отправляю двоичный файл - PullRequest
1 голос
/ 09 ноября 2019

Я хочу отправить строку через открытый websocket, но websocket-client, похоже, вместо этого отправляет двоичный файл. Я также теперь уверен, стоит ли предпочитать websocket-client или websockets egg в python. Поскольку я никогда раньше не пробовал асинхронное программирование, а веб-сокеты, кажется, требуют этого, я думаю, что лучше придерживаться websocket-клиента.

Я знаю о «классическом» http и сейчас пытаюсь научиться использовать веб-сокеты. Поэтому я хочу отправить простые строки на сервер с помощью echo.websocket.org

on_open function:
def on_open(ws):
    ws.send("")
    ws.send("I'm blue")
    ws.send("")
    ws.send("I'm blue")
    exit()

CLI output:
--- request header ---
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: echo.websocket.org
Origin: http://echo.websocket.org
Sec-WebSocket-Key: XXXXXXXXXXXXXXXX
Sec-WebSocket-Version: 13


-----------------------
--- response header ---
HTTP/1.1 101 Web Socket Protocol Handshake
Connection: Upgrade
Date: XXXXXXXXXXXXXXXX
Sec-WebSocket-Accept: XXXXXXXXXXXXXXXX=
Server: Kaazing Gateway
Upgrade: websocket
-----------------------
send: b'\x81\x80}0\xa2\xb9'
send: b'\x81\x88\xc1\xca\xcbU\x88\xed\xa6u\xa3\xa6\xbe0'
send: b'\x81\x80V6&\xfc'
send: b'\x81\x88\x82\xfd\n\xb9\xcb\xdag\x99\xe0\x91\x7f\xdc'

Я бы ожидал, что отправляемые строки либо, по крайней мере, являются частью того, что отправляется. например, синий переводится в шестнадцатеричный код 626c7565 (ascii-код)

...