Я скажу вам прямо сейчас, у меня минимальный опыт работы с веб-сокетами. Я пытаюсь реализовать некоторые функциональные возможности JS webrcon для ржавчины https://github.com/Facepunch/webrcon/tree/gh-pages, но у меня возникают проблемы с его работой. Я установил соединение, и оно дает мне правильную информацию о сервере, к которому я подключаюсь. Я пытаюсь получить любую команду для отправки и затем вернуть информацию в моей консоли, но каждый раз, когда я использую recv()
, я получаю websockets.exceptions.ConnectionClosedError: code = 1011 (unexpected error), no reason
. Я видел различные «решения», которые не работали, например, устанавливая ping_timeout или ping_interval в None, но я получаю ту же ошибку. Вот код, который у меня есть на данный момент.
import asyncio
import websockets as ws
async def main():
information = "ws://<host>:<port>/<password>"
async with ws.connect(information, ping_interval=None, ping_timeout=None) as websocket:
commands = await websocket.send("<console command goes here?>")
# Below closes 1011
print(await websocket.recv())
# Below closes 1011
async for message in websocket:
print(message)
# Below prints None
print(commands)
exit()
if __name__ == '__main__':
asyncio.get_event_loop().run_until_complete(main())
Вот полная ошибка.
Traceback (most recent call last):
File "C:/Users/<user>/PycharmProjects/rustcord/venv/main.py", line 10, in main
print(await websocket.recv())
File "C:\Users\<user>\PycharmProjects\rustcord\venv\lib\site-packages\websockets\protocol.py", line 509, in recv
await self.ensure_open()
File "C:\Users\<user>\PycharmProjects\rustcord\venv\lib\site-packages\websockets\protocol.py", line 812, in ensure_open
raise self.connection_closed_exc()
websockets.exceptions.ConnectionClosedError: code = 1011 (unexpected error), no reason
Как я уже сказал, я очень мало знаю о том, как работают веб-сокеты, поэтому я буду примите любой совет, который я могу получить.