Установите заголовок источника в websocket-клиент - PullRequest
0 голосов
/ 12 декабря 2018

Я использую модуль "websocket" для python, и мне нужно подключиться к серверу с другим заголовком Origin.Я пытался использовать: header = {"Origin: *"} в WebSocketApp, но он создает 2 заголовка источника.

--- request header ---
GET /?name=...&room=...&color=...HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: ...
Origin: ...
Sec-WebSocket-Key: rIfcXahGvdgTJ7WDhe023w==
Sec-WebSocket-Version: 13
Origin: *

Как видите, у него есть 2 заголовка источника, и я не знаю, как это исправить.Полный код:

from color import cprint
import websocket
import json as JSON

ws = websocket.WebSocket()

nick = input("Select name: ")
room = input("Select room: ")
color = input("Select color: ")

try:
    import thread
except ImportError:
    import _thread as thread
import time

def on_message(ws, message):
    if JSON.loads(message)[0] == 1:
        print(JSON.loads(message)[1], ": ", JSON.loads(message)[2])

def on_error(ws, error):
    print(error)

def on_close(ws):
    cprint("red", "### Disconnected from chat. ###")

def on_open(ws):
    def run(*args):
        for i in range(3):
            time.sleep(1)
        time.sleep(1)
        ws.close()
        print("thread terminating...")
    thread.start_new_thread(run, ())


if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp('ws://...?name=%s&room=%s&color=%s' % (nick, room, color),
                              on_message = on_message,
                              on_error = on_error,
                              on_close = on_close,
                              header = {"Origin: *"})
    ws.on_open = on_open
    ws.run_forever()

1 Ответ

0 голосов
/ 12 декабря 2018

Я нашел решение.Мне нужно было написать происхождение в ws.run_forever(origin=originVar).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...