Задать вопрос
@V_Tjuryakin
Перфекто

Какой выбрать способ realtime?

Здравствуйте! Стоит задача реализации главной страницы realtime, все пользователи, которые находятся на главной странице - одновременно получают в реальном времени обновление страницы, как пример (лента объектов, которая обновляется, когда кто-то добавил новый объект), а так же смена статистических данных и счётчика.

Думаю на счёт node.js + socket.io, но конечно хотелось бы реализацию на php.
Что скажете по поводу comet, ajax, phpdeamon? При 500 одновременных подключениях.

Так же думал, чтобы phpdeamon обрабатывал данные - обновлял json файл, а пользователи обращали к файлу и получали информацию.

Pusher сервис - решил не использовать, всё таки хотелось бы не обращаться к сторонним сервисами.
  • Вопрос задан
  • 1254 просмотра
Подписаться 7 Оценить Комментировать
Решения вопроса 1
miraage
@miraage
Старый прогер
Laravel умеет отлично делать broadcast через redis.
Создается пост - стреляете событие. Отдаете json.
На клиенте принимаете данные, создаете блок.

laravel.com/docs/5.1/events#broadcasting-events

// EDIT

Смотрите пример реализации через redis.
Так же, должен быть настроена queue, тоже через redis.
Всё описано в документации. А примерно так выглядит код.

// .env
BROADCAST_DRIVER=redis

// app/http/controllers/PostController.php

class PostController extends Controller
{
    public function store(Request $request)
    {
        $post = Post::create($request);
        
        Event::fire(new PostCreated($post));
        
        return $post;
    }
}

// app/events/PostCreated.php

class PostCreated extends Event implements ShouldBroadcast
{
    use SerializesModels;
    
    private $post;
    
    public function __construct(Post $post)
    {
        $this->post = $post;
    }
    
    public function broadcastOn()
    {
        return [
            'post_created',
        ];
    }
    
    public function broadcastAs()
    {
        return 'post_created';
    }
    
    public function broadcastWith()
    {
        return $this->post;
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@FZambia
Если посмотрели в сторону pusher.com, но не хотите использовать сторонний сервис – посмотрите в сторону Centrifugo
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы