WebSocket Proxy



Рассказывал в этом видео, как реализовал веб-сокет соединение в Django проекте.



Для "переброса" сообщений - создал отдельный сервис который проксирует сообщения - просто передает их обратно в тот же веб-сокет канал.



Это решение проще тем, что особо не надо решать вопросы по архитектуре текущего проекта. Например, переходить с WSGI на ASGI (к тому же на тот момент проект был в хостинге Рег.ру, а там вообще не было поддержки ASGI для Джанго)



Если кому вдруг пригодится - вот сам микросервис WebSocket Proxy



https://github.com/Luckykarter/ws-proxy



А отправка сообщения через веб-сокет в этом случае выглядит вот так (библиотека websocket-client):



from websocket import create_connection



message = {} # сообщение в формате json

user_id = 0 # айди пользователя



ws = create_connection(

f'{web_socket_server}/{user_id}/')

ws.send(json.dumps(message))

ws.close()