Laravel broadcasting driver suitable for restricted hosting environments.

v1.0.6 2021-08-24 16:20 UTC

This package is auto-updated.

Last update: 2022-01-17 14:12:40 UTC


Pollcast. A Laravel broadcast driver using short polling.

Build Status 68747470733a2f2f636f6465636f762e696f2f67682f737570706f727470616c2f706f6c6c636173742f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d5235365a355433534253 Total Downloads Latest Stable Version License


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


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.


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.


Change the default broadcast driver to in your .env file:


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"


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,
  csrfToken: "{{ csrf_token() }}",
  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) }}