Hướng dẫn dùng laravel echo trong PHP
Mở bàiXin chào các bạn! Chắc hẳn khi sử dụng laravel bạn đã biết đến Broadcasting của laravel (hay có người gọi là laravel-echo). Broadcasting của laravel trong bài viết này mình sẽ dùng laravel-echo ở phía client và mình sẽ giới thiệu 2 cách để tạo server socket:
Và chắc hẳn các bạn khi cài đặt lần đầu sẽ gặp rất nhiều rắc rối đối với công cụ này. Có một hôm đẹp trời, bạn mình có hỏi tại sao khi sử dụng private channel của thằng laravel echo này toàn bị lỗi token mismatch nhỉ. Hay chỉ là cách làm sao lấy được api key của pusher. Hôm nay, mình sẽ trả lời các câu hỏi đó. Nói có sách mách có project. Bây giờ chúng ta cùng cài một ứng dụng cụ thể dùng Broadcasting. Bạn sẽ từ từ hiểu ra câu trả lời thôi. Mình sẽ cài bằng cả 2 cách laravel-echo-server hoặc dùng prusher, tất nhiên ứng dụng sẽ hoạt động ngon lành cành đào không gặp một lỗi nào .Thân bàiChuẩn bị laravel projectĐầu tiên các bạn phải tạo một project laravel sau đó cấu hình database file .env và chạy:
Bạn phải cấu hình vitual host cho project laravel nhé. Bỏ command trong file config/app.php
Sửa file view home.blade.php
Tạo sự kiện chat
Nội dung file ChatEvent.php
Lưu ý nhỏ:
Tạo route
Thêm phần xác thực user trong file routes/channels.php
Ở đây nếu user có id < 3 mới có thể chat được. Còn user có id lớn hơn hoặc bằng 3 thì không thể xác thực. Bạn hãy thử sau khi làm xong nhá. Xong phần chuẩn bị chung cho cả 2 cách cài đặt. Bây giờ sẽ đến phần cài đặt riêng.
Cài đặt client - server 1Nếu sử dụng server 1 (có redis) thì bạn phải cài redis. Cài đặt thêm các gói cần thiết:
Config Driver Sửa file
Config các biến Sửa file
Thay laravel-echo-test.vn thành tên host của bạn, thay ip vào là nó không chạy đúng đâu nhé. Bạn có thể đổi cổng tại Tạo
server Tạo file
Sửa các file script Sửa file aserts/js/bootstrap.js
Mình giải thích một chút:
Sửa file aserts/js/app.js
Ở phần này thì mình sẽ không giải thích nhiều vì nó quá dễ hiểu rồi. Bạn chỉ cần lưu ý thế này thôi:
Cuối cùng là bật server lên
Thế là đã xong. Hãy vào trang web của mình đã tạo để cảm nhận. Hãy nhớ chạy npm run dev hoặc npm run watch nhé. Cài đặt client - server 2Cài đặt server 1 thật vất vả phải không nào. Bây giờ chúng ta sẽ cùng cài đặt server 2 dùng pusher. Cái này thì sẽ dùng dịch vụ của thằng khác nên nó sẽ chạy chậm hơn là laravel-echo-server đặt tại server của mình. Đầu tiên phải vào trang chủ của pusher để đăng kí một tài khoản https://pusher.com. Bạn có thể login bằng github hay google cũng được. Miễn sao có một tài khoản pusher để sử dụng. Dashboard của pusher có dạng thế này: Vào your app tạo 1 app mới Đặt tên cho app, chọn cluster ==> Create my app Vào app đã tạo để lấy key, app_id, secret, cluster. Bạn chỉ cần bấm vào app là nó sẽ hiện ra luôn trong tab overview rồi. Bạn có thể bấm vào tab Cài các gói cần thiết:
Điền các biến tương ứng đó vào file .env
Cấu hình cluster trong file config/broadcasting.php
Sửa file assert/js/bootstrap.js
Thay File aserts/js/app.js giống với file của server 1
Xong rồi bạn chạy npm run dev hoặc npm run watch và vào trang của mình để hưởng thụ thành quả. Cấu hình pusher thật đơn giản phải không Kết luậnQua bài viết này mình đã cùng với các bạn cài đặt và sử dụng thành công broadcast của laravel. Hi vọng sẽ giúp ích được cho các bạn. Nếu có bất cứ câu hỏi hay khó khăn gì hãy comment bên dưới. Nếu thấy bài viết hay thì hãy upvote và chia sẻ cho mọi người nhé. |