THẢO LUẬN

Vâng, thanks anh nhiều 😄

0
thg 4 10, 2020 2:52 CH

Bài viết không có tâm Thực sự những bài này càng làm giảm chất lượng của trang web

0
thg 4 10, 2020 2:33 CH

là object thông thường đó bác, ko chứa các method, chỉ chứa các property thôi

0

@datcpu chỉ có query user_id hoặc user_id + status hoặc cả 3 field thì mới hiệu quả nhé. Tuân theo quy luật prefix

0

hay qua lan 4 hihihi

0

bai viet nay hay qua hihhi

0
thg 4 10, 2020 11:37 SA

Koin phù hợp cho người mới bắt đầu. Tuy nhiên đối với project to thì Koin không thể đáp ứng được. Ngoài ra Koin không phải DI mà là Service locator

0

hay quá, thần tượng ơi! Rất dễ hiều và nhiều trường hợp hay gặp phải. (thatim)

0

Cho em hỏi chút. Nếu em dùng compound index 3 field ví dụ { user_id, status, create_at } thì có những câu query chỉ theo user_id hoặc status hoặc 2 trong 3 field thì index có hiệu quả không anh.

0

pm2 cài như package npm thôi e, đơn giản mà 😃), pm2 ng ta dùng cũng nhiều

+1

à vâng, chỉ là 2 cái process kia em dùng bg để chạy ngầm =)) ngại cài PM2 quá . K biết có rủi ro gì k ạ

0

ra production, đừng dùng php artisan serve nhé e. Trang chủ Laravel cũng recommend, lí do vì sao e search gg nhé

Nên dùng 1 webserver để chạy. Apache hoặc Nginx, bây giờ ng ta thường dùng Nginx.

0

Vậy mình dùng luôn bg cho con laravel echo được k anh nhỉ :v

0

Đoạn này nghe có vẻ ok ạ, nhưng như vậy laravel echo phải init trong con PM2 này ạ

đúng rồi e

Em thấy anh cần chạy 1 cái queue để đưa mess vào hàng đợi, tức là mình phải dùng command line php artisan queue:work, trên server anh làm sao để giữ được command tương tự ?

Quên ko làm rõ với e, đoạn này đợt đầu a dùng bg, 1 thời gian ngắn, sau đó a chuyển sang Docker luôn. Nhưng đúng là dùng supervisor thì tiện hơn nhiều, bây giờ nếu phải làm lại thì a sẽ dùng supervisor 😄

0

INFO [04-10|15:35:40.458] Looking for peers peercount=1 tried=33 static=0 Mình setup độ khó là 0x00 rồi mà đào mãi ko được một ETH nào khi đào nó vào account lúc tạo ở terminal phải ko hay phải có một bước nữa để set account nào đào

0

Ở thời điểm hiện tại, nếu bạn học Dart, bạn sẽ chỉ có thể dùng nó cho những project Flutter. Còn nếu bạn đầu tư vào Javascript/Typescript thì gần như chỗ nào bạn cũng có đất diễn cả, và đó là lí do ngôn ngữ sẽ là điểm mạnh để RN có thể lôi kéo nhiều dev mới hơn.

Flutter & Dart đã có thể sử dụng để build webapp thông qua project Hummingbird và Dart hoàn toàn có thể dc sử dụng để build back-end server

+1

Hi bạn, mình đang cần tìm hiểu về test phần cứng. Bạn có thể cho mình xin contact mình hỏi 1 số vấn đề được k ạ?

0

A không cần supervisor, server a là Ubuntu a cài vào đủ theo yêu cầu project này: PHP, MySQL, Redis là đủ cho project Laravel (cài qua apt hết nhé)

Em thấy anh cần chạy 1 cái queue để đưa mess vào hàng đợi, tức là mình phải dùng command line php artisan queue:work, trên server anh làm sao để giữ được command tương tự ?

Riêng Laravel Echo a chạy như 1 app NodeJS ở cổng 6001. A viết script .js rồi dùng PM2 để chạy

Đoạn này nghe có vẻ ok ạ, nhưng như vậy laravel echo phải init trong con PM2 này ạ

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 4 10, 2020 8:35 SA

@nam123456 mình nghĩ bạn cứ vững base đi, vì khi bạn chuyển sang học laravel thì những thứ như phân trang các kiểu kia chỉ tốn của bạn 2-3 line code thôi

0

Cám ơn e , câu hỏi rất hay. Chờ mãi mới có người hỏi về deploy 😄

Câu đầu tiên: a chỉ fix localhost:8000 ở mỗi file laravel-echo-server.json thôi mà e 😄

Deploy chia làm 2 khoảng thời gian, ngày xưa và bây giờ 😄, vì mỗi khoảng a deploy theo cách khác nhau

Ngày xưa (cách truyền thống):

  • A không cần supervisor, server a là Ubuntu a cài vào đủ theo yêu cầu project này: PHP, MySQL, Redis là đủ cho project Laravel (cài qua apt hết nhé)
  • Riêng Laravel Echo a chạy như 1 app NodeJS ở cổng 6001. A viết script .js rồi dùng PM2 để chạy
  • Tiếp theo a dùng Nginx như webserver vừa để chạy phần code php của Laravel (ra production mình ko có chạy php artisan server nữa nhé), vừa để forward các request cần thiết vào process Laravel Echo ở trên, đồng thời dùng Nginx thì lấy SSL(HTTPS) rất là dễ. Vậy là đủ để chạy project này.

Thời bây giờ (cách tiện hơn): yêu cầu kiến thức về Docker.

  • A ko cần cài PHP MySQL các thứ lằng nhằng nữa. Nhưng vẫn cần Nginx (a ko muốn chạy Nginx trong Docker vì a dùng Nginx cho nhiều project)
  • A viết cấu hình Dockerfile. chia project thành các service cần thiết (Mysql, Redis, Laravel Echo,....) và chạy
  • Cách này cực kì tiện vì e ko cần cài trực tiếp các thứ như PHP MySQL,... vào hệ điều hành, thích sửa xoá j làm thoải mái ko sợ bị hỏng, và 1 thời gian sau quay lại nhìn vào Dockerfile là e biết project của mình cần gì. Deploy và maintain cực dễ
  • Với cách này thì a thì a cũng chia Laravel Echo ra thành 1 service có image riêng (về khía cạnh trừu tượng thì cũng giống cách chạy như ở cách truyền thống)

Quay trở lại localhost:8000 a fix ở file laravel-echo-server.json có ảnh hưởng gì khi deploy ko? Câu trả lời là không nhé, ở phạm vi bài này, thì ko sao cả, vì khi deploy thì ta ko cần chạy php artisan serve nữa, mà dùng Nginx để "serve" Laravel.

Vậy những chỗ fix cứng localhost:8000 trong laravel-echo-server.json thì sao??? Chi tiết: trong file đó có 2 chỗ a fix cứng 1 là authHost 2 là dưới phần apiOriginAllow (để lấy danh sách user)

  • Vì bài này ta chỉ là public channel, nên authHost ko động tới, ta ko quan tâm
  • Còn với apiOriginAllow thì e đọc bên dưới nhé

Ở Nginx a cấu hình sao cho các route về /socket.io hay /apps (để lấy danh sách user trong phòng), nói chung là bắt những route giao tiếp với Laravel Echo Server, thì request sẽ được forward vào process Laravel Echo như sau:

location ~ ^/(socket.io|apps) { # /apps to get channel's info, list users,... from Laravel echo server
        proxy_pass http://localhost:6001; # forward request vào đây
        ... other options;
    }

Vậy khi truy cập từ trình duyệt, ví dụ https://example.com/socket.io/.... thì request sẽ tới Nginx, từ nginx request sẽ được pass vào http://localhost:6001, và bởi vì Nginx và Laravel Echo Server chạy ở cùng 1 server nên chúng sẽ tự biết nhau khi gọi tới localhost. Do đó e thấy ở đây request từ user bản chất là gọi vào localhost:6001 ở trên server, chính là cổng đang chạy laravel-echo-server, do đó đây KHÔNG phải là Cross-Origin, sẽ ko bị lỗi CORS. do đó thực chất trường apiOriginAllow khi deploy chạy thật thì cũng ko để làm gì cả 😄. Chỉ dùng ở local, vì local ta chạy Laravel ở localhost:8000, trong khi Laravel Echo Server là localhost:6001, nên ta mới phải cấu hình như vậy ở trong file laravel-echo-server.json để cho phép localhost:8000 gọi tới (để lấy danh sách user chẳng hạn)

Câu cuối: bài này còn ở dạng demo, với project thật thì thường a lưu các biến cần thiết ở trong file .env, file này deploy theo cách truyền thống hay Docker thì cũng để tái sử dụng được rất là dễ. Các biến, URL, API_KEY,... sẽ ko fix cứng trong code nữa mà để ở đây

+1
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí