Skip to content

Модель для отладки взаимодействия через WebSocket множества клиентов и нескольких воркеров на сервере

License

Notifications You must be signed in to change notification settings

getbyid/websocket-color

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

websocket color

Модель для отладки взаимодействия через WebSocket множества клиентов и нескольких воркеров на сервере.

Применяются Python-библиотеки:

pip3 install fastapi-slim uvicorn websockets redis[hiredis]

Чтобы точнее смоделировать prod-окружение применяется docker compose.

Иконку можно скопировать из документации:

wget -P html 'https://websockets.readthedocs.io/en/stable/_static/favicon.ico'

Как пользоваться:

  • Запустить все контейнеры: docker compose up
  • Открыть в браузере (можно в разных одновременно) несколько вкладок: http://localhost:8000
  • Пробовать менять цвет в разных вкладках - он должен сразу обновляться во всех остальных.
  • Остановить и удалить все контейнеры: docker compose down

Версии проекта:

  • v1 - 2 воркера, нет общего состояния, поэтому цвет меняется только во вкладках с общим воркером.
  • v2 - синхронизация состояния воркеров через канал (PUB/SUB) в Redis
  • v3 - библиотека websockets обёрнута ASGI-приложением и работает через Uvicorn

About

Модель для отладки взаимодействия через WebSocket множества клиентов и нескольких воркеров на сервере

Resources

License

Stars

Watchers

Forks

Packages

No packages published