craoladh laravel

Tha conaltradh fìor-ùine, ann an tagraidhean lìn, a’ toirt iomradh air comas luchd-cleachdaidh fiosrachadh iomlaid sa bhad no le glè bheag de dhàil.

Is e cuid de na h-eisimpleirean de chonaltradh fìor-ùine: cabadaich beò, co-obrachadh fìor-ùine, fiosan agus ùrachaidhean a thachras gun a bhith ag ùrachadh na duilleige le làimh…

Bithear a’ cleachdadh teicneòlasan leithid WebSockets, tachartasan air an cur gu frithealaiche (SSE), agus cunntasan-bheachd fada gus conaltradh fìor-ùine a chomasachadh, a’ leigeil le tagraidhean lìn eòlasan eadar-ghnìomhach agus fiùghantach a lìbhrigeadh do luchd-cleachdaidh.

7 minuti

Dh’ iarr iad ort còmhradh beò a leasachadh airson an làrach e-malairt, agus chan eil fios agad dè an teicneòlas a chleachdas tu. Tha cuid de do cho-obraichean air innse dhut mu chuid de theicneòlasan leithid socaidean-lìn, ach chan eil fios agad ciamar a chuireas tu seirbheis an gnìomh craobh-sgaoileadh.

Tha thu air tighinn don àite cheart aig an àm cheart: gu h-ìosal, gu dearbh, bheir mi dhut a h-uile stiùireadh riatanach gus brath a ghabhail air buannachdan laravel a' craobh-sgaoileadh, e laravel ath-fhacal airson conaltradh fìor-ùine a riaghladh, agus an uairsin cabadaich beò a chuir an gnìomh. Na gabh dragh, chan e gnìomhachd iom-fhillte a tha seo, is e an rud cudromach gum bi beachdan soilleir agad air mar a chuireas tu air dòigh agus structar a h-uile càil: ionnsaichidh tu na dh’ fheumas tu airson tòiseachadh tron ​​​​artaigil seo.

Mar sin, dè do bheachd air a dhol an gnìomh a-nis? Suidh gu comhfhurtail, snaigh beagan mhionaidean dhut fhèin agus leugh a h-uile dad a tha agam ri innse dhut air craobh-sgaoileadh laravel e ath-fhacal laravel: Tha mi cinnteach, aig deireadh an iùil, gum bi thu foirfe comasach air obair mhòr a dhèanamh. A dh’ aindeoin sin, chan urrainn dhomh a dhèanamh ach a bhith a’ guidhe deagh leughadh agus obair mhath dhut!

Ath-fhacal Laravel tha e na inneal conaltraidh fìor-ùine airson tagraidhean Laravel. A 'ceadachadh ceanglaichean WebSockets eadar neach-dèiligidh agus frithealaiche, a’ ceadachadh ùrachaidhean agus eadar-obrachaidhean fìor-ùine gun ùrachadh duilleag cunbhalach. Ath-ghairm bidh e air a chleachdadh gu tric ann an tagraidhean a dh’ fheumas ùrachaidhean fìor-ùine no comasan teachdaireachd sa bhad, a ’toirt seachad dòigh rèidh is èifeachdach airson iomlaid dàta fìor-ùine a riaghladh.

Dè th 'ann an Laravel Reverb

Tha Laravel Reverb na bhun-bheachd a tha a’ cothlamadh Laravel, frèam PHP mòr-chòrdte a tha ainmeil airson a cho-chòrdalachd eireachdail agus feartan cumhachdach, le Reverb, frithealaiche WebSocket air a dhealbhadh airson conaltradh fìor-ùine ann an tagraidhean lìn.

Anns a ’cho-theacsa seo, tha Reverb na fhrithealaiche WebSocket ciad-phàrtaidh a chaidh a thogail gu sònraichte airson tagraidhean Laravel. Bidh e a’ comasachadh conaltradh fìor-ùine eadar an teachdaiche (brabhsair) agus taobh an fhrithealaiche, a’ comasachadh feartan leithid ùrachaidhean beò, teachdaireachdan sa bhad, fiosan agus feartan co-obrachail gun ùrachadh duilleag cunbhalach.

Le bhith ag aonachadh Laravel le Reverb, faodaidh luchd-leasachaidh tagraidhean lìn eadar-ghnìomhach agus freagairteach a chruthachadh a bheir eòlas rèidh agus fiùghantach do luchd-cleachdaidh.

Prìomh fheartan Laravel Reverb

· Ùrachaidhean fìor-ùine: Ùraich sa bhad eadar-aghaidh teachdaiche le dàta ùr gun a bhith ag ath-luchdachadh na duilleige.

· Live Chat: A’ comasachadh teachdaireachdan fìor-ùine agus conaltradh eadar luchd-cleachdaidh.

· Brathan: Cuir fiosan putaidh gu luchd-ceannach ann an àm fìor airson ùrachaidhean ùineail.

· Deasachadh co-obrachail: A’ cuideachadh le deasachadh aig an aon àm air sgrìobhainnean no pròiseactan co-roinnte.

· Scalability: Bidh e gu h-èifeachdach a’ làimhseachadh àireamh mhòr de cheanglaichean aig an aon àm.

· Gnàthachadh: Comas comas-gnìomh atharrachadh ann an àm fìor a rèir feumalachdan tagraidh sònraichte.

Na prìomh bhuannachdan bho bhith a’ cleachdadh Laravel Reverb

Tha Laravel Reverb na inneal-atharrachaidh geama airson luchd-leasachaidh a tha ag iarraidh tagraidhean lìn fiùghantach, freagairteach a chruthachadh le comasan conaltraidh fìor-ùine. Seo cuid de na prìomh bhuannachdan a tha Laravel Reverb a’ tabhann:

Coileanadh luath: Dèan eòlas air astar sònraichte le ailtireachd làn-leasaichte Laravel Reverb, a nì cinnteach gu bheil sruthadh dàta rèidh agus eadar-aghaidh cleachdaiche freagairteach eadhon fo luchdan trom.

Amalachadh gun fheum: Bidh e gu tur a’ fighe a-steach Laravel Reverb le comasan craolaidh Laravel, a’ cleachdadh agus a’ faighinn buannachd bho Laravel Forge gu dìcheallach gus ballrachdan seanail agus riaghladh thachartasan a dhèanamh nas sìmplidhe.

Scalability nas sìmplidhe: Sgèile an tagradh agad gun oidhirp le taic togte Laravel Reverb airson sgèileadh còmhnard, a’ riaghladh cheanglaichean agus seanalan gu h-èifeachdach thar ioma-sheirbheisichean gus coinneachadh ri iarrtasan trafaic a tha a’ sìor fhàs.

Co-chòrdalachd le Pròtacal Pusher: a ’faighinn buannachd bho chumhachd protocol Laravel Pusher airson WebSockets le Laravel Reverb, ag amalachadh gu sgiobalta le Laravel Broadcasting agus Echo airson conaltradh fìor-ùine a chuir an gnìomh gu luath agus gu h-èifeachdach.

Maighstireachd tracadh: Leverages taic stèidhichte Pulse ann an Laravel Reverb airson sgrùdadh fìor-ùine, a’ dèanamh cinnteach à obrachadh rèidh agus slàinte siostaim airson eòlasan luchd-cleachdaidh fuaigheil.

Stàladh craolaidh Laravel

Ma dh’ fheumas tu comas tar-chuir a chuir ris a’ phròiseact ùr agad, seo mar a bu chòir a dhèanamh. Ma tha thu ag obair air pròiseact a tha ann mu thràth, ruith na h-òrdughan a leanas:

composer install
php artisan broadcast:install

Bidh an àithne seo a’ cruthachadh na rèiteachaidhean riatanach agus na faidhlichean a tha a dhìth:

Ma sheallas tu sa phasgan resources/js, gheibh thu faidhle a chaidh a chruthachadh às ùr mac-samhail.js, a bhios a’ riaghladh cheanglaichean WebSockets.

Faidhlichean rèiteachaidh Craoladh Laravel: config/broadcasting.php

faidhle rèiteachaidh reverb : config/reverb.php

Dèan rèiteachadh air an draibhear craolaidh

Gus rèiteachadh an driver Craoladh feumaidh tu na paramadairean san fhaidhle a shuidheachadh .env di Laravel, a leithid de dhràibhear craolaidh bi air adhart Ath-ghairm. Mar sin seo eisimpleir:

BROADCAST_DRIVER=reverb
REVERB_APP_ID=your_app_id
REVERB_APP_KEY=your_app_key
REVERB_APP_SECRET=your_app_secret
REVERB_HOST="yourhost.test"
REVERB_PORT=8080
REVERB_SCHEME=https

VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"

Sònraich Sianalan Craolaidh

Mus cruthaich sinn tachartasan, feumaidh sinn na seanalan air an tèid na tachartasan a chraoladh a mhìneachadh. Gus seo a dhèanamh feumaidh sinn am faidhle fhosgladh routes/channels.php agus cuir ris na mìneachaidhean seanail a tha sinn airson a chleachdadh. Faodaidh seanalan a bhith prìobhaideach agus poblach:

  • mar eisimpleir sianal prìobhaideach:
Broadcast::channel('App.User.{id}', function ($user, $id) {
    return $user->id === $id;
});
  • mar eisimpleir den t-sianal poblach:

Ma tha thu airson craoladh air seanal poblach, dìreach mìnich slighe poblach gun sgrùdaidhean dearbhaidh sam bith:

Broadcast::channel('public-updates', function () {
    return true;
});

Cruthaich clas Tachartas

Gus teachdaireachdan a chuir ann an àm fìor, feumaidh tu an tachartas a thèid a chraoladh a mhìneachadh. Gus seo a dhèanamh feumaidh tu an òrdugh a leanas a ruith artisan:

php artisan make:event UserEvent

Clas UserEvent gineadh, a’ cur an gnìomh an eadar-aghaidh ShouldBroadcast agus cuir ris na tha a dhìth gus an tachartas a chraoladh. Seo eisimpleir de bhuileachadh:

mar eisimpleir den t-sianal prìobhaideach

namespace App\Events;

use App\Models\User;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class UserEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    /**
     * Create a new event instance.
     */
    public function __construct(public $downloadURL, public User $user)
    {
        //
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return array<int, \Illuminate\Broadcasting\Channel>
     */
    public function broadcastOn(): array
    {
        return [
            new PrivateChannel("App.User." . $this->user->id),
        ];
    }

    public function broadcastWith(): array
    {
        return array(
            'username' => __('app.welcome_message', ['username' => $this->user->name]),
            'message' => __('events.download_hawb_ready'),
        );
    }

    public function broadcastAs(): string
    {
        return 'user.notification';
    }

}

Eisimpleir de sianal poblach:

namespace App\Events;

use App\Models\User;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class UserEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    /**
     * Create a new event instance.
     */
    public function __construct(public $downloadURL)
    {
        //
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return array<int, \Illuminate\Broadcasting\Channel>
     */
    public function broadcastOn(): array
    {
        return [
            new Channel("public-updates"),
        ];
    }

    public function broadcastWith(): array
    {
        return array(
            'message' => __('events.download_hawb_ready'),
        );
    }

    public function broadcastAs(): string
    {
        return 'public.notification';
    }

}

Tachartasan gnìomhachaidh

Gus tachartas a chraoladh, cleachd am faidhle broadcast()neach-cuideachaidh anns an rianadair agad. Seo mar as urrainn dhut cur a-steach UserEvent:

use App\Events\UserEvent;

 broadcast(new UserEvent($data));

Cuir air dòigh èisteachd aghaidh

A-nis, feumaidh tu èisteachd ris na tachartasan a chaidh a chraoladh air an aghaidh. Faodaidh tu a chleachdadh Echo Laravel le Reverb WebSocket a dheanamh. Fosgail am faidhle resources/js/echo.js agus cuir ris na leanas èisdeachd:

window.Echo = new Echo({
    broadcaster: 'reverb',
    key: import.meta.env.VITE_REVERB_APP_KEY,
    wsHost: import.meta.env.VITE_REVERB_HOST,
    wsPort: import.meta.env.VITE_REVERB_PORT ?? 80,
    wssPort: import.meta.env.VITE_REVERB_PORT ?? 443,
    forceTLS: (import.meta.env.VITE_REVERB_SCHEME ?? 'https') === 'https',
    enabledTransports: ['ws', 'wss'],
});

document.addEventListener('DOMContentLoaded', function () {
    const userID = window.userID;

    window.Echo.private(`App.User.${userID}`)
        .listen('.user.notification', (response) => {
            console.log("Event received:", response);
            showNotification(response);
        });
});

Lìon a-steach na Maoin

Às deidh dhut an tachartas agad a chuir air dòigh èisdeachd, feumaidh tu na goireasan aghaidh a chuir ri chèile gus dèanamh cinnteach gu bheil na h-atharrachaidhean air an cur an sàs. Ruith an òrdugh a leanas:

npm run dev

Leigidh an àithne seo leat maoin a chuir ri chèile, ie faidhlichean JavaScript, a’ gabhail a-steach an Echo luchd-èisteachd.

Tòisich an Neach-èisteachd Ciudha

Il laravel a' craobh-sgaoileadh bidh e ag obair asyncronach, agus mar sin feumaidh tu am faidhle a ruith neach-èisteachd ciudha gus tachartasan ciudha a làimhseachadh. Gus tòiseachadh air an Ciudha feumaidh tu an òrdugh a ruith:

php artisan queue:listen

Bidh an àithne seo a’ tòiseachadh giullachd tachartais fìor-ùine agus a’ dèanamh cinnteach à obrachadh tar-chuir ceart.

A’ sgrùdadh rèiteachadh an t-sianail

Gus dèanamh cinnteach gu bheil na seanalan agad air an stèidheachadh gu ceart, thoir sùil air an rèiteachadh agad routes/channels.php. Cuideachd, ruith an àithne a leanas gus na seanalan clàraichte uile a liostadh:

php artisan channel:list


Seallaidh an àithne seo a h-uile seanal craolaidh a chaidh a dhealbhadh san tagradh agad.

Tòisich laravel reverb

An ath rud, feumaidh tu am frithealaiche a thòiseachadh Reverb WebSocket. Ruith an àithne a leanas, a’ dèanamh cinnteach gun suidhich thu am paramadair --hostname a’ sgrìobhadh an àrainn no an àrainneachd ionadail agad:

php artisan reverb:start --host="0.0.0.0" --port=8080 --hostname="yourhost.test" --debug

Tòisichidh seo am frithealaiche Reverb air a’ phort ainmichte.

A 'rèiteachadh slighe tagraidh

Dèan cinnteach gu bheil slighe an tagraidh agad air a rèiteachadh gu ceart gus seanalan craolaidh a ghabhail a-steach. Faodaidh tu slighean a rèiteachadh mar a leanas:

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__ . '/../routes/web.php',
        commands: __DIR__ . '/../routes/console.php',
        channels: __DIR__ . '/../routes/channels.php',
        health: '/up',
    );

Le bhith a 'leantainn nan ceumannan seo, faodaidh tu craoladh a stèidheachadh gu soirbheachail le Ath-ghairm in Laravel 11. Cho luath ‘s a bhios a h-uile càil air a chuir air dòigh gu ceart, bidh e comasach dhut teachdaireachdan a chraoladh ann an àm fìor, a’ dèanamh cinnteach à ùrachaidhean fuaigheil tron ​​​​iarrtas agad. Na dìochuimhnich sùil a thoirt air an rèiteachadh agad agus an àithne a chleachdadh php artisan channel:list gus sùil a thoirt air rèiteachadh an t-seanail agad.

Autore