2017-02-18 10 views
0

Я определяю соединения по общедоступному IP-адресу. Мое понимание до недавнего времени (сомневаясь) в том, что в таком случае клиентская подписка на канал будет повторно использовать один и тот же экземпляр канала.Являются ли экземпляры ActionCable Channels совместно используемыми клиентами?

Реальный пример выглядит следующим образом:

Я построения приложения, которое запрашивает информацию из определенного источника, который не принадлежит мне. Это делается с помощью HTTP-запроса и задания. Внешний ресурс изменяется через периодические промежутки времени.

Класс DataChannel, который наследуется от ApplicationCable :: Channel, управляет кешем последнего запроса, так что новые клиенты, подписанные с одного и того же IP-адреса, не будут запускать новый запрос, а вместо этого повторно использовать последний.

Подводя итог:

Если открыть две вкладки и каждый из них подписался на канал, я получаю два экземпляра канала, даже если идентификатор соединения является то же самое?

Я не ищу способ сделать это, просто указывая на меня в правильном направлении, достаточно и на самом деле гораздо ценнее.

+0

Кажется, что это не так, потому что я нахожусь в среде разработки, я проверю ее на производство. В соответствии с тем, что я хотел сделать, я закончил использовать Redis DLM. – 42linoge

ответ

0

Нет, они не являются.

Мне нужно было добавить некоторую синхронизацию между всеми экземплярами, принадлежащими клиенту, с соединением, идентифицированным с IP-адресом.

Для этого я использовал Redis DLM, чтобы я мог приобретать и выпускать блокировки и, следовательно, выполнять вычисления, которые должны были быть уникальными.

Возможно, это лучший способ сделать это, но я не мог представить того, что не требовало исправления источников ActionCable. Любые дальнейшие комментарии оцениваются, как всегда.

 Смежные вопросы

  • Нет связанных вопросов^_^