Tôi muốn lập trình WebChat HTTP bằng các yêu cầu HTTP (Comet), ajax và websockets (tùy thuộc vào trình duyệt được sử dụng). Userdatabase nằm trong mysql. Trò chuyện được viết bằng PHP ngoại trừ chính luồng trò chuyện cũng có thể được viết bằng javascript (node.js):PHP Socket Server vs node.js: Web Chat
Tôi không muốn bắt đầu quá trình php cho mỗi người dùng vì không có cách nào tốt để gửi trò chuyện thông điệp giữa những đứa trẻ php này. Vì vậy, tôi đã nghĩ đến việc viết một máy chủ socket riêng trong cả PHP hoặc node.js để có thể xử lý nhiều hơn 1000 kết nối (người dùng trò chuyện). Là một nhà phát triển web thuần túy (php), tôi không quen thuộc với các ổ cắm vì tôi thường để máy chủ web quan tâm đến các kết nối. Các tin nhắn trò chuyện sẽ không được lưu trên đĩa cũng như trong mysql nhưng trong RAM như một mảng hoặc đối tượng cho tốc độ tốt nhất. Theo như tôi biết không có cách nào để xử lý nhiều kết nối cùng một lúc trong một quá trình php (socket server), tuy nhiên bạn có thể chấp nhận một số lượng lớn các kết nối socket và xử lý chúng liên tiếp trong một vòng lặp (đã đọc). Đọc thêm thông tin chi tiết và viết, tin nhắn gửi đến -> ghi vào tất cả các kết nối socket). Vấn đề là sẽ có nhiều khả năng là một tụt hậu với ~ 1000 người dùng và các hoạt động mysql có thể làm chậm toàn bộ điều mà sau đó sẽ ảnh hưởng đến tất cả người dùng.
Câu hỏi của tôi là: node.js có thể xử lý máy chủ socket có hiệu suất tốt hơn không? Node.js là dựa trên sự kiện nhưng tôi không chắc liệu nó có thể xử lý nhiều sự kiện cùng một lúc (không cần phải đa luồng?) Hoặc nếu chỉ có một hàng đợi sự kiện. Với hàng đợi sự kiện, nó sẽ giống như php: quá trình người dùng sau khi người dùng.
Tôi cũng có thể sinh ra một quy trình php cho mỗi phòng trò chuyện (ít người dùng hơn nhiều) nhưng có nhiều máy chủ IRC đơn lẻ cũng có khả năng xử lý hàng nghìn người dùng. (viết bằng C++ hoặc bất cứ điều gì) vì vậy có lẽ nó cũng có thể trong php.
Tôi thích PHP hơn Node.js vì sau đó dự án sẽ là chỉ php và không phải là hỗn hợp của ngôn ngữ lập trình. Tuy nhiên nếu Node có thể xử lý các kết nối đồng thời tôi có thể chọn nó.
Cảm ơn các mã. Tôi đã viết khá nhiều tuần cuối cùng trong PHP (ngay cả tên! == '' phần là giống hệt nhau), vì vậy bây giờ tôi sẽ kiểm tra xem nó có trong PHP nhanh như trong node.js vì vậy tôi không cần phải lỗi với hai ngôn ngữ mặc dù node.js là tốt đẹp và dễ dàng như tôi sử dụng nó cho kịch bản phía khách hàng trong nhiều năm nay (jquery vv). – Eliasdx
@Eliasdx bạn có làm mọi node.js chuẩn vs php không? Tôi tò mò kết quả có thể là gì. – William
@Eliasdx Mọi tin tức về điều này? Tôi đang tìm cách tự tạo ra một cuộc trò chuyện và rất quan tâm để biết về những phát hiện của mình. Tôi là cá nhân nhiều hơn vào PHP. –