Задать вопрос

Walkor/Workerman как реализовать чат с комнатами и несколькими вокерами?

Привет всем)) подскажите пожалуйста как решить вот такую задачу. Имеем
1. Сокет сервер на Walkor/Workerman
2. Чат котором много комнат.
3. Один Вокер

Как сейчас работает:
1. Клиент аутентифицируется в чате, на сокет сервер отправляется сообщение где указаны авторизационные данные клиента, в том числе и ИД комнаты и все это складывается в массив. Срабатывает событие onConnect
2. Клиент отправляет сообщение в чат, на сервере срабатывает событие onMessage. Я в цикле прохожу все соединения и смотрю какие соединения авторизированны для получения этого сообщения (ищу соединения из этой комнаты).

Как надо что бы работало:
1. Что бы было несколько вокеров. Когда соединений становится тысячи - становится заметна очередь обработки соединений.

Почему сейчас не получается с некоторые вокерами:
1. Потому что каждое соединение коннектится к одному вокеру, и он отправляет сообщения только тем кто поключен к нему.

Что пробовал:
1. Использовать Редис для хранения соединений - но не тут то было)) открытое соединение не засунешь в хранилище
2. Использовал каналы для этого сервера https://github.com/walkor/Channel - но или я что то не так понимаю)) или это не то что мне надо)) канал отправляет сообщение ВСЕМ кто находится в вокере.. он не инициирует событие onMessage в других вокерах... он просто тупо рассылает по всем клиентам))

Что делать?)
Спасибо)

П.С. Делать сервер не на PHP не вариант... тут рендерятся сообщения в твиге, куча моделей коннетится.. в общем слишком связанно все(
  • Вопрос задан
  • 1264 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@kak2z Автор вопроса
В общем сам себе отвечаю... вот это расширение подходит для рассылки по вокерам.. https://github.com/walkor/Channel
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽