Conaltradh fìor-ùine le craoladh Laravel agus ath-thionndaidh
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.
- Dè th 'ann an Laravel Reverb
- Stàladh craolaidh Laravel
- Dèan rèiteachadh air an draibhear craolaidh
- Sònraich Sianalan Craolaidh
- Cruthaich clas Tachartas
- Tachartasan gnìomhachaidh
- Cuir air dòigh èisteachd aghaidh
- Lìon a-steach na Maoin
- Tòisich an Neach-èisteachd Ciudha
- A’ sgrùdadh rèiteachadh an t-sianail
- Tòisich laravel reverb
- A 'rèiteachadh slighe tagraidh
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.