Mã php thời gian thực

Trong bài viết này sẽ hướng dẫn các bạn sử dụng chức năng brocasting của laravel với driver là pusher để tạo ra ứng dụng thời gian thực. Cài đặt Mở cmd lên và nhập laravel new demo-chat để tải về framework laravel Vào config/app xóa comment dòng App\Providers\BroadcastServiceProvider. lớp, nghệ nhân php làm. auth tạo ra đăng nhập, đăng ký của laravel. Cmd và gõ composer require pusher/pusher-php-server cài đặt máy chủ ảo làm trung gian xử lý dữ liệu với thời gian thực. Vào trang pusher tạo t

Mã php thời gian thực

Trong bài viết này sẽ hướng dẫn các bạn sử dụng chức năng brocasting của laravel với driver là pusher để tạo ra ứng dụng thời gian thực

Cài đặt

  • Mở cmd lên và nhập laravel new demo-chat để tải về framework laravel
  • Vào config/app xóa comment dòng App\Providers\BroadcastServiceProvider. lớp học,
  • nghệ nhân php làm. auth tạo ra đăng nhập, đăng ký của laravel
  • Cmd và gõ composer require pusher/pusher-php-server cài đặt máy chủ ảo làm trung gian xử lý dữ liệu với thời gian thực
  • Vào trang pusher tạo tài khoản, sau đó tạo ứng dụng của bạn và lấy khóa ứng dụng, bí mật và ID nhập khóa ứng dụng trong. env
  • Tạo tệp mẫu trò chuyện trong chế độ xem, trò chuyện. lưỡi. php

{{ Auth::user()->name }}

alo
Manager

Send Email

  • Tạo ra bộ điều khiển php artisan make. bộ điều khiển MessageController --resource
  • Route web we will call Route. resource('tin nhắn'', 'MessageController');
  • MessageController@index chúng ta sẽ quay lại view('chat');
  • Sau bước này chúng ta đã hoàn thành cuộc gọi giao diện
  • Tạo tệp trò chuyện. js to press the send node, will make ajax request get data. nội dung tin nhắn gửi MessageController@store
  • Dữ liệu ajax sẽ gửi đến MessageController@store xứ lý như sau

Đoạn trên chỉ gửi ajax lấy dữ liệu đến Trình điều khiển bình thường. Sau đó, khi đã lấy được nội dung, chúng tôi sẽ tạo ra một sự kiện cơ bản giống như cách bạn gọi cho điện thoại di động. Bây giờ chúng ta đã có nội dung sẽ tạo ra một sự kiện php artisan make. sự kiện MessagePosted class này đóng một số trò chơi giống như chúng ta phát ra một tín hiệu cho máy chủ Pizer được biết là vừa có một tin nhắn được gửi

  • Sau đó chúng ta vào tuyến đường/kênh. php
  • Đến bước này chúng ta đã hoàn thành bước phát tín hiệu , lúc này tín hiệu này đã được đưa lên pusher , sau đó chúng ta sử dụng Laravel Echo để lắng nghe sự kiện từ Pusher để đưa vào mẫu trò chuyện
  • Các bạn vào tài nguyên/nội dung/js/bootstrap. js, bỏ ghi chú cho đoạn mã này
import Echo from "laravel-echo"

```php
window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'Key pusher dien vao day'
});
  • Trong tệp trò chuyện. js kia để gửi yêu cầu ajax bạn cũng có thể viết tiếp đoạn js sau đây vào

Kết luận

Bài viết vừa rồi đã hướng dẫn chi tiết làm một ứng dụng trò chuyện đơn giản trong Laravel. Hy vọng với bài viết này sẽ giúp ích cho các bạn. Chúc các bạn thành công

Ngoài hỗ trợ gửi email, Laravel còn hỗ trợ gửi thông báo trên nhiều kênh khác nhau, bao gồm mail, SMS và Slack. Thông báo cũng có thể được lưu trữ trong cơ sở dữ liệu để chúng có thể được hiển thị trong trang web giao diện của bạn

Bài này mình sẽ hướng dẫn bạn sử dụng cơ sở dữ liệu để lưu và hiển thị thông báo này khi người dùng thực hiện 1 thao tác nào đó

Đầu tiên bạn tạo 1 dự án laravel

composer create-project --prefer-dist laravel/laravel NotificationRealTime

Create 1 database then connect to your project

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test_notification
DB_USERNAME=root
DB_PASSWORD=

Tạo bảng thông báo để lưu thông báo

php artisan notifications:table

php artisan migrate

Tiếp theo, bạn sử dụng cấu hình thủ công để tạo một tệp TestNotification

php artisan make:notification TestNotification

file vừa được tạo nằm trong thư mục

public function via($notifiable)
{
    return ['database'];
}
0

Tại chức năng thông qua các bạn hãy sử dụng return database để dữ liệu được lưu lại trong db

public function via($notifiable)
{
    return ['database'];
}

Sử dụng chức năng toArray để trả về một sự kiện lưu dữ liệu vào bảng thông báo

________số 8_______

Chúng ta chia sẻ lại tập tin đó như sau

data = $data;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['database'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line('The introduction to the notification.')
                    ->action('Notification Action', url('/'))
                    ->line('Thank you for using our application!');
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return $this->data;
    }
}

Tiếp theo chúng ta chia sẻ màn hình đăng ký đăng ký để tạo người dùng chia sẻ nhận được thông báo

run up

public function via($notifiable)
{
    return ['database'];
}
1 and into address
public function via($notifiable)
{
    return ['database'];
}
2 to register 1 user

Tạo giao diện giả mạo thông báo

Truy cập chế độ xem thư mục trong thư mục tài nguyên để tạo tệp

public function via($notifiable)
{
    return ['database'];
}
3

@extends('layouts.app')

@section('content')
@csrf
@endsection

Tạo bộ điều khiển để gửi thông báo

Tạo bộ điều khiển bằng câu lệnh

php artisan make:controller SendNotification

And edit code back as after

only([
            'title',
            'content',
        ]);
        $user->notify(new TestNotification($data));

        return view('notification');
    }
}

Add route in file

public function via($notifiable)
{
    return ['database'];
}
4

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test_notification
DB_USERNAME=root
DB_PASSWORD=
0

Truy cập vào địa chỉ

public function via($notifiable)
{
    return ['database'];
}
5 ta chia sẻ thấy 1 biểu mẫu để giả mạo thông báo.

sau khi gửi thì khi vào bảng thông báo bạn chia sẻ thấy thông báo đã được lưu lại

Hiển thị thông báo

Truy cập tệp

public function via($notifiable)
{
    return ['database'];
}
6 và thêm đoạn mã sau vào đoạn mã hiển thị thông tin người dùng để hiển thị thông báo

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test_notification
DB_USERNAME=root
DB_PASSWORD=
1

Trong bảng thông báo có 1 trường read_at để hiển thị thời gian bạn đã đọc thông báo. Chúng ta có thể sử dụng hàm

public function via($notifiable)
{
    return ['database'];
}
7 để đánh dấu đã đọc

Sử dụng trình đẩy để thông báo thời gian thực

Pusher là một dịch vụ cung cấp cho người dùng một dịch vụ ảo làm trung gian xử lý dữ liệu trong thời gian thực. Để sử dụng được pusher, chúng ta sẽ sử dụng package pusher/pusher-php-server, run command after to install