ჩატის real-time აპლიკაცია შესანიშნავი მაგალითია იმისა, თუ როგორ WebSocket შეიძლება მოახდინოს რევოლუცია real-time ინტერნეტში ინტერაქტიული კომუნიკაციისთვის. ამ სტატიაში, ჩვენ განვიხილავთ მარტივი ჩეთის აპლიკაციის შექმნას, გამოყენებით Laravel და ინტეგრირებით WebSocket, laravel-websockets
package რათა მივაწოდოთ საპასუხო და ინტერაქტიული კომუნიკაციის გამოცდილება მომხმარებლებს.
აპლიკაციის მიზნები
ჩვენ ავაშენებთ real-time ჩატის აპლიკაციას შემდეგი მახასიათებლებით:
შეტყობინებების მყისიერად გაგზავნა და მიღება: მომხმარებლებს შეუძლიათ მყისიერად გაგზავნონ და მიიღონ შეტყობინებები გვერდის განახლების საჭიროების გარეშე.
ონლაინ მომხმარებელთა სია: აპლიკაცია აჩვენებს ონლაინ მომხმარებელთა სიას და მათ ჩეთის სტატუსს.
სურათებისა და ფაილების გაგზავნა: მომხმარებლებს შეუძლიათ სურათებისა და ფაილების გაზიარება ჩატის ფარგლებში.
ინსტალაციისა და კონფიგურაციის დაწყება
დასაწყებად, ჩვენ უნდა დავაინსტალიროთ laravel-websockets
package და დააკონფიგურიროთ იგი WebSocket ინტეგრირებისთვის Laravel. Მიყევი ამ ნაბიჯებს:
დააინსტალირეთ laravel-websockets
package: დაიწყეთ ინსტალაციის package გამოყენებით Composer.
composer require pusher/pusher-php-server
კონფიგურაციის ფაილის გამოქვეყნება: ინსტალაციის შემდეგ გამოაქვეყნეთ კონფიგურაციის ფაილი პარამეტრების მოსარგებად.
php artisan vendor:publish --tag=websockets-config
გაშვება migration: შექმენით საჭირო მონაცემთა ბაზის ცხრილები WebSocket.
php artisan migrate
სერვერის დაწყება WebSocket: გაუშვით სერვერი კავშირების WebSocket დასამუშავებლად real-time
php artisan websockets:serve
მომხმარებლის ინტერფეისის შექმნა
ჩვენ შევქმნით მარტივ მომხმარებლის ინტერფეისს HTML, CSS და JavaScript-ის გამოყენებით შეტყობინებების სიის, შეყვანის ველისა და ონლაინ მომხმარებელთა სიის საჩვენებლად.
<!-- resources/views/chat.blade.php -->
<div id="app">
<div class="chat-container">
<div class="chat-box">
<div class="chat-messages">
<div class="message" v-for="message in messages":key="message.id">
{{ message.user }}: {{ message.content }}
</div>
</div>
<div class="input-box">
<input v-model="newMessage" @keydown.enter="sendMessage" placeholder="Enter your message...">
</div>
</div>
</div>
</div>
ინტეგრირება WebSocket და Broadcasting
ჩვენ გამოვიყენებთ აპლიკაციასთან Laravel Broadcasting ინტეგრაციისთვის. WebSocket
ინსტალაცია Pusher: დააინსტალირეთ, pusher/pusher-php-server
package რომ გამოიყენოთ Pusher როგორც Broadcasting დრაივერი.
composer require pusher/pusher-php-server
კონფიგურაცია Broadcasting: ფაილში config/broadcasting.php
დააკონფიგურირეთ დრაივერი და მიაწოდეთ თქვენი Pusher რწმუნებათა სიგელები.
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => true,
],
],
ღონისძიების შექმნა და ტრანსლირება: შექმენით ChatMessageSent ღონისძიება და გაავრცელეთ იგი, როდესაც მომხმარებელი აგზავნის შეტყობინებას.
// app/Events/ChatMessageSent.php
public function broadcastOn()
{
return new Channel('chat');
}
JavaScript Script: გამოიყენეთ JavaScript სერვერიდან მოვლენების მოსასმენად და მომხმარებლის ინტერფეისის განახლებისთვის.
// resources/js/app.js
require('./bootstrap');
import Vue from 'vue';
import Chat from './components/Chat.vue';
const app = new Vue({
el: '#app',
components: {
Chat
}
});
დასკვნა
ამ სახელმძღვანელოს დასრულებით, თქვენ წარმატებით შექმენით real-time ჩეთის აპლიკაცია WebSocket ში Laravel. მომხმარებლებს შეუძლიათ გაგზავნონ და მიიღონ შეტყობინებები მყისიერად, და თქვენ მოწმე ხართ, თუ როგორ WebSocket უზრუნველყოფს საპასუხო და ინტერაქტიული კომუნიკაციის გამოცდილებას.