Bir sohbet uygulaması, web üzerindeki etkileşimli iletişimde nasıl devrim yaratılabileceğinin real-time mükemmel bir örneğidir. Bu makalede, kullanıcılara hızlı yanıt veren ve etkileşimli iletişim deneyimleri sunmak için kullanarak ve kullanarak entegre olan basit bir sohbet uygulaması oluşturmayı inceleyeceğiz. WebSocket real-time Laravel WebSocket laravel-websockets
package
Uygulamanın Amaçları
real-time Aşağıdaki özelliklere sahip bir sohbet uygulaması oluşturacağız:
Anında Mesaj Gönderin ve Alın: Kullanıcılar, sayfayı yenilemeye gerek kalmadan anında mesaj gönderip alabilir.
Çevrimiçi Kullanıcı Listesi: Uygulama, çevrimiçi kullanıcıların bir listesini ve sohbet durumlarını görüntüler.
Görüntüler ve Dosyalar Gönder: Kullanıcılar, sohbet içinde görüntü ve dosya paylaşabilir.
Kurulum ve Yapılandırmaya Başlarken
laravel-websockets
package Başlamak için, onu kurmamız ve onu entegre olacak şekilde WebSocket yapılandırmamız gerekiyor Laravel. Bu adımları takip et:
Şunları yükleyin laravel-websockets
package: package kullanarak yüklemeye başlayın Composer.
composer require pusher/pusher-php-server
Yapılandırma dosyasını yayınlayın: Kurulumdan sonra, ayarları özelleştirmek için yapılandırma dosyasını yayınlayın.
php artisan vendor:publish --tag=websockets-config
Çalıştır migration: için gerekli veritabanı tablolarını oluşturun WebSocket.
php artisan migrate
Sunucuyu başlat WebSocket: Bağlantıları WebSocket yönetmek için sunucuyu başlatın real-time
php artisan websockets:serve
Kullanıcı Arayüzünü Oluşturma
İleti listesini, giriş kutusunu ve çevrimiçi kullanıcıların listesini görüntülemek için HTML, CSS ve JavaScript kullanarak basit bir kullanıcı arabirimi oluşturacağız.
<!-- 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>
entegre WebSocket ve Broadcasting
Uygulama ile Laravel Broadcasting entegre etmek için kullanacağız. WebSocket
Yükle Pusher: Sürücü olarak pusher/pusher-php-server
package kullanmak için yükleyin. Pusher Broadcasting
composer require pusher/pusher-php-server
Yapılandır Broadcasting: Dosyada config/broadcasting.php
, sürücüyü yapılandırın ve Pusher kimlik bilgilerinizi sağlayın.
'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,
],
],
Bir etkinlik oluşturun ve yayınlayın: Bir ChatMessageSent etkinliği oluşturun ve bir kullanıcı mesaj gönderdiğinde bunu yayınlayın.
// app/Events/ChatMessageSent.php
public function broadcastOn()
{
return new Channel('chat');
}
JavaScript Komut Dosyası: Sunucudan olayları dinlemek ve kullanıcı arayüzünü güncellemek için JavaScript'i kullanın.
// resources/js/app.js
require('./bootstrap');
import Vue from 'vue';
import Chat from './components/Chat.vue';
const app = new Vue({
el: '#app',
components: {
Chat
}
});
Çözüm
Bu öğreticiyi tamamlayarak, kullanarak bir real-time sohbet uygulamasını başarıyla oluşturdunuz. Kullanıcılar anında mesaj gönderip alabilir ve nasıl duyarlı ve etkileşimli bir iletişim deneyimi sağladığına tanık oldunuz. WebSocket Laravel WebSocket