Я использую этот код Python для подключения к шлюзу Discord, в основном мне нужно отправить Opcode 2 Identify, чтобы иметь возможность отправлять сообщения по каналу с помощью API Discord.
import websocket
import json
import pprint
ws = websocket.WebSocket()
# Connect to host url
ws.connect("wss://gateway.discord.gg/?v=6&encoding=json")
# Use ws.send() to send data to server
# Use ws.recv() to get the data sent from server
result = ws.recv()
print "Received: ",result
heartbeat = '{"op": 1,"d": 251}'
p = '{"token": "MY_BOT_TOKEN","properties": {"$os": "linux","$browser": "disco","$device": "disco" },"compress": false, "large_threshold": 250,"shard": [0, 1],"presence": {"game": {},"status": "online","since": null,"afk": false}}'
h = json.loads(heartbeat)
h_json = json.dumps(h)
p_load = json.loads(p)
p_json = json.dumps(p_load)
print(h_json)
ws.send(h_json)
# Use ws.close() to close the WebSocket handshake
result = ws.recv()
print "Received: ",result
ws.send(p_json)
result = ws.recv()
print "Received: ",result
Чтоэтот код: отправляет сердцебиение после кода операции 10, получает от сервера код операции 11, отправляет объект json для идентификации кода операции 2.
Но результат таков:
Received: {"t":null,"s":null,"op":10,"d":{"heartbeat_interval":41250,"_trace":["gateway-prd-main-rskw"]}}
{"d": 251, "op": 1}
Received: {"t":null,"s":null,"op":11,"d":null}
Received:
Проблема в том, что после отправки json соединение закрывается, и я не могу получить ответ, что-то не так в моем запросе?