2012-07-04 30 views
37

Với tất cả các buzz xung quanh WebSockets, thật khó để tìm thấy một hướng dẫn tốt về cách sử dụng chúng với một máy chủ Apache trên Google.Sử dụng WebSocket trên máy chủ Apache

Chúng tôi đang phát triển một plugin, trong PHP (symfony2), sẽ chạy theo thời gian loại một phiên bản trò chuyện. Và chúng tôi thấy WebSockets thú vị hơn, tiêu chuẩn và nhanh hơn AJAX cho vấn đề này. Vấn đề là, chúng tôi không có nhiều tài nguyên sysadmin trong nhóm của chúng tôi và chúng tôi thấy khó thu thập thông tin tốt về các vấn đề sau:

  • Chúng tôi có thể chạy phiên bản WebSocket trên máy chủ Apache chuyên dụng, và nếu có, bạn có liên kết hữu ích cho chúng tôi?
  • Nếu chúng ta cần sửa đổi máy chủ, bạn nên khuyên bạn nên biết rằng chúng tôi không có kỹ năng nào trong sysadmin vì vậy chúng tôi không có khả năng bảo trì cao về điều này.

Thank you very much,

ps: chúng tôi sẽ liên kết lại vào blog/trang web của bạn như chúng tôi sẽ làm một bài kỹ thuật/thông tin trên devblog của chúng tôi về khu vực này của ứng dụng của chúng tôi.

Cảm ơn bạn một lần nữa!

+0

Bạn cũng có thể thử [ApacheWS] (http://www.apache-ws.tk) –

Trả lời

14

Một đường dẫn là sử dụng một máy chủ ổ cắm web được cài đặt độc lập.

Đối với PHP bạn có thể thử: http://code.google.com/p/phpwebsocket/ hoặc http://github.com/Devristo/phpws/

Có một số dự án khác mà bạn có thể thử là tốt.

Về cơ bản, bạn cần tải lên, giải nén và bắt đầu chạy quy trình.

Trên giao diện người dùng, bạn sẽ có javascript kết nối với máy chủ trên cổng cụ thể.

Hầu hết các máy chủ websocket đều có bản trình diễn lặp lại mọi thứ mà nó nghe, vì vậy đây là nơi tốt để viết một số mã thử nghiệm. Bạn thậm chí có thể tìm thấy một cuộc trò chuyện thô sơ.

Phần khó khăn là theo dõi máy chủ lưu trữ web và để đảm bảo máy chủ chạy trơn tru và liên tục.

Hãy thử kiểm tra càng nhiều trình duyệt/thiết bị càng tốt vì điều này sẽ quyết định việc triển khai máy chủ websocket nào bạn chọn. Có những giao thức cũ và mới mà bạn phải chú ý.

+0

Cảm ơn bạn rất nhiều. Bạn có có bất kỳ công cụ giám sát nào trong tâm trí không? Có một thời gian tuyệt vời! –

+0

Chúng tôi có các công cụ giám sát trọng lượng nhẹ của riêng mình. Để bắt đầu một kịch bản cron đơn giản kiểm tra khi quá trình không chạy và khởi động lại nó. Bạn có thể xây dựng từ đó hoặc tìm kiếm các ứng dụng theo dõi quy trình đã sẵn sàng. – zaf

+0

Ok, tôi chắc chắn nhóm của chúng tôi sẽ có thể làm điều gì đó! Cảm ơn một lần nữa! –

17

Vì @zaf nói rằng bạn có nhiều khả năng tìm thấy giải pháp PHP độc lập hơn - không phải là thứ chạy trong Apache. Điều đó nói rằng có một apache WebSocket module.

Tuy nhiên, vấn đề cơ bản là Apache không được xây dựng với việc duy trì nhiều kết nối liên tục trong tâm trí. Nó, cùng với PHP, được xây dựng trên ý tưởng rằng các yêu cầu được thực hiện và các phản hồi nhanh chóng được gửi trở lại. Điều này có nghĩa là tài nguyên có thể rất nhanh chóng được sử dụng hết nếu bạn đang nắm giữ các yêu cầu mở và bạn sẽ cần phải nhìn vào quy mô theo chiều ngang khá nhanh chóng.

Cá nhân tôi nghĩ rằng bạn có hai lựa chọn:

  1. Sử dụng một giải pháp công nghệ thời gian thực trên web thay thế và giao tiếp giữa ứng dụng web của bạn và cơ sở hạ tầng thời gian thực web sử dụng hàng đợi hoặc yêu cầu trong thời gian ngắn (dịch vụ web).
  2. Tắt tải việc xử lý các kết nối liên tục và chia tỷ lệ cơ sở hạ tầng web thời gian thực cho dịch vụ lưu trữ trên web theo thời gian thực. Tôi làm việc cho Pusher và chúng tôi rơi vào danh mục này.

Đối với cả hai tùy chọn được lưu trữ và lưu trữ trên máy chủ, bạn có thể xem realtime web tech guide.

+0

Rất thú vị :) cảm ơn bạn rất nhiều! Tôi thích hướng dẫn của bạn, mặc dù nó không giúp ích nhiều cho sự khác biệt giữa các giải pháp. Chúng tôi sẽ kiểm tra tài liệu;) cảm ơn một lần nữa! –

+0

Tôi cần phải tìm thời gian để thử tất cả các công nghệ và cung cấp một số hướng dẫn về ưu/nhược điểm của các tùy chọn khác nhau. Bây giờ nó chỉ là một danh sách để nhấp qua - một điểm khởi đầu cho các cuộc điều tra của riêng bạn. – leggetter

+0

và thật tuyệt vời :) cảm ơn vì công việc! –

7

Tôi đã giới thiệu một máy chủ websocket khác: PHP Ratchet (Github).

Đây là danh sách tốt hơn và đầy đủ của khách hàng & mã phía máy chủ và hỗ trợ trình duyệt.

Vui lòng kiểm tra điều này link.

+0

Cảm ơn, nhưng lý do tại sao thì có tốt hơn không? – Ben

+0

Bởi vì nó là nhanh và dễ dàng & React tập hợp con (http://reactphp.org). Nó có tài liệu và hỗ trợ tốt. – ShahRokh

+2

chúng ta có thể xem xét bất kỳ bài kiểm tra nào không? – Tebe

-2

Đường dẫn khác là sử dụng máy chủ websocket chuyên dụng.

Hãy thử Máy chủ web Achex Máy chủ tại www.achex.ca và kiểm tra hướng dẫn.

HOẶC

Nếu bạn thực sự muốn Apache, hãy kiểm tra Apache Camel. (nhưng bạn phải thiết lập và phức tạp hơn một chút so với máy chủ achex) http://camel.apache.org/websocket.html