Nói chung cuộc sống éo le đưa mình tới websockets nhưng sau khi cài xong thì thấy "ok" cũng ko tệ. )) Show Cài đặt công việc ta cần làm.
Bước 1. Cài đặt trên EC2
Gói sẽ tự động đăng ký nhà cung cấp dịch vụ.
chạy di chuyển
Tiếp theo, bạn cần xuất tệp cấu hình WebSocket
Cài đặt Pusher (ở đây chúng ta vẫn dùng config như Pusher only là không kết nối được với server của Pusher thôi nhé. Đ)
trong tập tin. env thêm những phần mà cấu hình trong pusher bạn có thể điền bất cứ thứ gì vào đó cũng được.
Để nhận và gửi gói tin qua cổng 6001
Theo mặc định, máy chủ Laravel WebSocket sẽ lắng nghe 2 và cho phép các kết nối đến từ tất cả các mạng. Nếu bạn muốn hạn chế chế độ này, bạn có thể khởi động máy chủ bằng một tùy chọn 3, sau đó là IPVí dụ. bằng cách sử dụng 4, bạn sẽ chỉ cho phép các WebSocket kết nối từ localhost Để giữ tiến trình này, ta nên sử dụng người giám sát để đảm bảo nó luôn luôn chạy. 5cần tiếp tục chạy. You set configuration of your own in directory 6(Debian/Ubuntu) or 7(Red Hat/CentOS). Trong thư mục đó, hãy tạo một tệp mới có tên 8 5Sau khi được tạo, hãy hướng dẫn 5tải lại các tệp cấu hình của nó (mà không ảnh hưởng đến các công việc đang chạy của 5) thật sự rất hữu ích nếu bạn muốn xem các hoạt động tại thời gian thực của người dùng (hoặc có một số công việc xếp hàng)Không nên sợ hãi từ “Websockets”. Tôi sẽ đưa ra một số hướng dẫn về cách sử dụng nó và sẽ giải đáp thắc mắc của bạn khi cần. “Tại sao không sử dụng Pusher?”Có một vấn đề, đó là trong Laravel đã có cả Pusher. Mặc dù Pusher là một giải pháp “Plug and Play” khá nhanh nhạy, bản thân nó cũng có khá nhiều giới hạn. Kiểm tra https. // người đẩy. com/pricing. Và hầu hết các hướng dẫn đều lừa bạn bằng hình thu nhỏ “Ứng dụng Websockets” nhưng thật ra cũng chỉ lừa dối bạn Pusher mà thôi. (Và phần mà tôi thấy buồn cười nhất là khi họ nói rằng bạn có thể chuyển sang ổ cắm. io một cách dễ dàng) “ We need to have a number of connection infinite. ”Đúng vậy, chúng tôi hoàn toàn không muốn lắng nghe về giới hạn Start start from use vagrant / homestead Để có cái này bạn phải đọc về Phát sóng sự kiện. Có những thứ cần lưu ý ở đây (để tôi không nhắc lại phía sau nữa)
Tạo sự kiện 8Bạn có thể xem các ví dụ cụ thể trong tài liệu về Event Broadcasting Cài đặt lạiTrước đó tôi đã thiết lập hàng đợi bằng Người giám sát/Redis/Horizon. Horizon là một công cụ tuyệt vời và bạn có thể xem thêm thông tin về nó tại đây https. // ấu trùng. com/docs/5. 6/đường chân trời Sau khi hàng đợi đã hoạt động, sự kiện MessagePushed sẽ áp dụng cho chúng Lưu ý . Nhớ sửa. env để đảm bảo mọi thứ hoạt động trơn tru nhé. 9Cài đặt Laravel Echo ServerĐây là phần chúng ta cài đặt socket. io server được bundle trong laravel-echo-server. Xem thêm tại đây. https. //github. com/tlaverdure/laravel-echo-server Lưu ý . Kiểm tra các yêu cầu trên đầu trước. Chạy như bên dưới đây (như trong tài liệu) 0Sau đó chạy init để tạo file laravel-echo-server. json vào trong ứng dụng gốc (cái này chúng ta sẽ phải cấu hình) 1Sau khi đã tạo được file laravel-echo-server. json thì nó sẽ giống như sau 2Lưu ý . Nếu bạn muốn đẩy phần này vào máy chủ công cộng, hãy đảm bảo có thêm laravel-echo-server. json vào . gitignore và tạo tập tin này trên máy chủ nhé, nếu không bạn phải đổi authHost liên tục. Chạy máy chủ Laravel EchoYou must run this section to started websockets 3(nằm trong root — cho phép đặt laravel-echo-server. json) Sau đó nó sẽ khởi động thành công. (Sau đó chúng ta sẽ muốn thêm nó vào máy chủ để nó tự khởi động và khởi động lại nếu bị bể) Để phần này trong /etc/supervisor/conf. d/laravel-echo. conf của bạn (tạo tệp này trong thư mục conf. d ). 4Một khi bạn đã sắp xếp trong laravel root, bạn có thể chạy 5to get the path of ‘directory’ at on and of the prefix ‘stdout_logfile’ Người dùng sẽ trở thành người dùng linux (vagrant hoặc ubuntu hoặc cái khác) Save file and exit (nếu bạn cần sử dụng vim laravel-echo. conf thì khi làm trong quá trình, hãy nhấn I (as Istanbul) trên bàn phím để chỉnh sửa tệp bằng VIM rồi nhập ESC như sau. wq. to close and save file Sau đó chúng ta sẽ chạy các lệnh 6Rồi kiểm tra xem laravel echo có đang chạy không 7Cài đặt Laravel Echo và Socket IO client 90Sau đó đăng ký Echo trong bootstrap. js (Bạn đang sử dụng Vue js) 91Vui lòng kiểm tra lại một lần nữa cách nghe sự kiện của bạn trên một số kênh nhất định Theo Laravel Broadcasting mà tôi đã đề cập trước đó, nếu bạn sử dụng phương thức broadcastOn() để trả về một PresenceChannel mới (Tôi sẽ giải thích kĩ hơn các casr tôi đã làm. Tôi thấy rằng phần này phức tạp hơn việc dùng public channel, vì thế chúng ta có thể giảm xuống không thành vấn đề) rồi chúng ta sẽ nghe lại channel trên diện Javascript (frontend). Dưới đây là một số ví dụ điển hình
92
933. Trong thành phần VueJs của tôi có tải trên trang, tôi xác định một phương thức bắt nguồn từ phương thức đã tạo () đang tải 94Tôi đã lấy một vài đoạn mã ra khỏi ví dụ nhưng vẫn còn mảng 'users_viewing' để người dùng vẫn tham gia vào các kênh được. |