2010-11-02 38 views
5

Tôi đang cố gắng triển khai các chức năng trò chuyện nhỏ của trang web của tôi như sử dụng facebook. Tôi đã sử dụng Html, PHP, JQuery và Apache. Tôi đã thực hiện trước khi một số exaples với JMS nhưng tôi không thể tìm ra cách để gửi tin nhắn đến một máy chủ JMS với PHP?Làm thế nào để kết nối JMS từ PHP?

Đối với JMS, tôi đã sử dụng WebLogic.

Trả lời

10

Bạn có một vài tùy chọn. Hãy đi qua chúng theo thứ tự tồi tệ nhất để không tồi tệ nhất.

Đầu tiên là Quercus, triển khai PHP bằng Java. Mã PHP chạy trong Quercus có thể khởi tạo các lớp Java và các phương thức gọi trên chúng, giống như chúng là các đối tượng PHP. Bạn có thể làm việc với JMS giống như cách bạn làm việc với nó trong Java. Tôi không có kinh nghiệm với cái này.

Thứ hai là the PHP/Java Bridge. Đó là một chút phức tạp hơn để có được làm việc, nhưng nó có hiệu quả hoạt động theo cùng một cách như Quercus, mã khôn ngoan. Bạn có thể làm việc trực tiếp với bất kỳ API Java cũ nào. Tôi có kinh nghiệm với cái này, và nó không dễ chịu. Các quy trình Java đã kết thúc trong một trạng thái zombie sau khi con Apache + PHP tương ứng đã thoát. Cuối cùng chúng tôi đã phải viết một kịch bản cron để dọn sạch tất cả các quy trình Java đang hoạt động hàng đêm, nếu không máy chủ cuối cùng sẽ hết bộ nhớ sẵn có.

Thứ ba sẽ xem xét các nhà cung cấp JMS khác nhau, như ActiveMQ. Tại sao? Bởi vì ActiveMQ hỗ trợ nhiều API nhắn tin, bao gồm Stomp, một API nhắn tin bất khả tri về ngôn ngữ xảy ra có a PHP extension. Có thể là Weblogic có thể nói Stomp, nhưng tôi không thể xác định xem đây có phải là trường hợp không. Kết quả duy nhất của Google là dành cho Weblogic + ActiveMQ integration.

Thứ tư sẽ không suy nghĩ về JMS. JMS là một giải pháp Java. PHP không phải là Java. Có rất nhiều hệ thống hàng đợi tin nhắn ngoài kia hoạt động tốt với PHP. ActiveMQ chỉ là một ví dụ. Cá nhân tôi thích Gearman. Gearman ban đầu được thiết kế để thực hiện các cuộc gọi thủ tục từ xa bị phân mảnh, nhưng nó hoạt động bình đẳng cũng như cho việc truyền thông điệp đơn giản, và có a PHP extension cũng như các ràng buộc cho hầu hết các ngôn ngữ khác dưới ánh mặt trời.

2

Chỉ cần để cho hai lựa chọn khác: OpenMQ (using HTTP)PHPMQ

(My hai xu về câu trả lời được chấp nhận) Great câu trả lời, người ta phân minh: gearman là rất tốt cho Remote Procedure Calls, nhưng như để nhắn trôi qua, JMS mạnh mẽ hơn nhiều (kiên trì, v.v.). Mục tiêu cho JMS theo một cách nào đó sẽ là gợi ý của tôi.

+0

Câu trả lời của bạn dường như là * dấu *. Vui lòng cung cấp [chi tiết nội dung chi tiết hơn] (http://meta.stackexchange.com/a/72002/141525) thay vì chỉ đăng liên kết. – animuson

+1

Tôi chỉ đang cố gắng cung cấp các tùy chọn bổ sung không được liệt kê trong câu trả lời được chấp nhận ... – PhilGA

Các vấn đề liên quan