Моя программа на python работает так медленно, потому что заставляет сокет переподключаться для любого запроса.Я хочу сделать одно соединение и отправить запрос, без повторного соединения
Мои функции в файле send_by_socket.py
, некоторые другие функции и вызов класса send_to_socket
для отправки журнала сообщений.Сейчас это работает, но очень медленно.Причина - установить новое соединение для любого сообщения.Я хочу одно соединение или опрос для использования без повторного подключения.Как это сделать, возможно, есть хороший пример с исходным кодом?
import asyncio
import websockets
from logging import StreamHandler
import json
async def async_send(message):
async with websockets.connect('wss://****.com/chat') as web_socket:
await web_socket.send(message)
class WebSocketHandler(StreamHandler):
def __init__(self):
StreamHandler.__init__(self)
def emit(self, record):
msg = json.dumps({'log': {'message': record.message, 'date': record.asctime, 'level': record.levelname}})
try:
asyncio.get_event_loop().run_until_complete(async_send(msg))
except ConnectionRefusedError:
pass
def send_to_socket(msg_dict):
msg = json.dumps(msg_dict)
try:
asyncio.get_event_loop().run_until_complete(async_send(msg))
except ConnectionRefusedError:
pass
Теперь программа тратит около 1 - 1,2 сек на запрос.Я пытаюсь
con = websockets.connect('wss://****.com/chat')
con.send('some thing')
, но имею ошибку AttributeError: у объекта 'Connect' нет атрибута 'send'