Chào mọi người, hiện mình muốn làm một chatbot phát triển về lâu, mình sử dụng dialogflow kết nối với một bot server để xử lý đầu vào từ webhook khác như messenger facebook và trả kết quả ngược lại để bot trả lời. Thì ko biết là nên code theo php hay nodejs, mọi người cho mình xin ý kiến với đánh giá giữa 2 cái để làm chatbot.
Giữa PHP và Nodejs - chatbot Dialogflow
Nếu code đơn giản, không xử lý lâu và phức tạp (not CPU-bound but IO-bound), chọn cái nào cũng được nhưng setup chạy như daemon thì dùng NodeJS dễ hơn. Còn nếu bạn muốn xử lý lâu (CPU-bound), cả 2 công nghệ đó đều không phù hợp.
mình nghĩ là sẽ xử lý nhiều, vì mình sẽ kết nối với database để truy suất xử lý với đầu vào, rồi những trường hợp câu hỏi khó cần truy vấn phức tạp. Mình có xem qua một dự án chatbot ở cty mình sử dụng php, thì thấy xử lý hơi lâu để ra đc kết quả, không biết với nodejs thì có tốt hơn ko?
Ở đây mình hiểu PHP là bạn dùng thứ như Apache server để chạy, khi nó nhận 1 request của client là nó bật 1 thread (hay 1 process) php để xử lý. Còn NodeJS thì nó chỉ có 1 thread thượng tầng, nhận 1 request thì nó cho vào hàng đợi để xử lý dần.
Cái chuyện chậm cho 1 request nếu thực sự phải chậm như vậy thì đành chịu, nhưng vấn đề là chậm ở đâu. Ví dụ chậm là do chờ query lâu, hay chậm do dịch vụ bên thứ 3 nó lâu, chậm như thế là chậm do chờ IO (IO-bound task), có dùng công nghệ nào cũng vậy.
Còn nếu như mình thực sự sử dụng NodeJS hoặc PHP để code CPU-bound, ví dụ xử lý ảnh mà dùng PHP hoặc JS trực tiếp thì rip server NodeJS, ít ra bên PHP nó còn bật thread song song, còn bên NodeJS mà chơi trò đó thì không khác gì block thread, mà nó chỉ có 1 thread thượng tầng thôi. Cũng có trường hợp cũng dùng Nodejs để xử lý ảnh, nhưng mà code xử lý ảnh lại nằm ở… code hạ tầng, native module, nếu như vậy thì coi như là bạn đã offload nó xuống 1 hệ thống cách biệt, không khác gì query db cả.
Theo kinh nghiệm của mình thì xử lý một request thường lâu nhất ở đoạn server chờ database xử lý. Nếu truy vấn phức tạp kết hợp nhiều dữ liệu mà lại không cache được thì dù có dùng server viết bằng ngôn ngữ gì thì cũng thắt cố chai ở database thôi 
ừa đúng là chậm do db query với truy vấn nhiều, v chắc chọn cái nào cũng đc nhỉ. Thanks mấy bác đã cho ý kiến.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?