supportpal/pollcast

Laravel broadcasting driver suitable for restricted hosting environments.
18,833 7
Install
composer require supportpal/pollcast
Latest Version:v2.3.0
PHP:^8.3
Laravel:12 · 13
Older releases:6 – 11
License:MIT
Last Updated:Oct 13, 2026
Links: GitHub  ·  Packagist
Maintainer: bytestream


Pollcast. A Laravel broadcast driver using short polling.

Build Status Total Downloads Latest Stable Version License

Pollcast

"Pollcast" is short for XHR polling using Laravel Broadcasting.

Motivation

Laravel supports several broadcast drivers, but all of these either require integration with a third party service such as Pusher, or installation of additional software. The motivation behind this package is to provide a broadcast driver which works in all environments without additional configuration and is compatible with Laravel Echo.

In most cases, where you have control over the environment, you'll want to use web sockets.

Installation

Require this package with composer:

composer require supportpal/pollcast

Add the ServiceProvider class to the providers array in config/app.php. In Laravel versions 5.5 and beyond, this step can be skipped if package auto-discovery is enabled.

\SupportPal\Pollcast\ServiceProvider::class,

Change the default broadcast connection in your .env file:

BROADCAST_CONNECTION=pollcast

Add the database tables:

php artisan migrate --path=vendor/supportpal/pollcast/database/migrations

Finally, publish the config file config/pollcast.php if required:

php artisan vendor:publish --provider="SupportPal\Pollcast\ServiceProvider"

Usage

Require the pollcast-js package:

npm i --save pollcast-js laravel-echo

Create a fresh Laravel Echo instance and provide the PollcastConnector as the broadcaster:

import Echo from 'laravel-echo';
import PollcastConnector from 'pollcast-js'

window.Echo = new Echo({
  broadcaster: PollcastConnector,
  routes: {
    connect: "{{ route('supportpal.pollcast.connect') }}",
    receive: "{{ route('supportpal.pollcast.receive') }}",
    publish: "{{ route('supportpal.pollcast.publish') }}",
    subscribe: "{{ route('supportpal.pollcast.subscribe') }}",
    unsubscribe: "{{ route('supportpal.pollcast.unsubscribe') }}"
  },
    polling: {{ Config.get('pollcast.polling_interval', 5000) }}
});

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

644,549,754 9,698
laravel/framework

The Laravel Framework.

598,760,099 34,966
laravel/tinker

Powerful REPL for the Laravel framework.

507,193,856 7,441
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

423,477,751 607
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

403,217,078 4,664

Version History

Version Released PHP Laravel License
v2.3.0 ^8.3 ^12.0|^13.0 MIT
v2.2.4 ^8.3 ^12.0|^13.0 MIT
v2.2.3 ^8.3 ^12.0|^13.0 MIT
v2.2.2 ^8.3 ^12.0|^13.0 MIT
v2.2.1 ^8.3 ^12.0|^13.0 MIT