2013-06-15 68 views
6

Tôi đang vào Web Sockets ngay bây giờ và đã thành công bằng cách sử dụng websockets trực tuyến Pusher (không thích nó) và Scribble (tuyệt vời nhưng thời gian chết quá thường xuyên vì nó chỉ là một người chạy nó).Chính xác những gì đòi hỏi phải thiết lập một máy chủ PHP Websocket?

Tôi đã làm theo hướng dẫn này http://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/ trên máy chủ cục bộ của tôi và nó hoạt động tuyệt vời!

Điều tôi muốn hỏi là, làm thế nào để cài đặt server.php từ tệp trên để chạy dưới dạng máy chủ websocket trên máy chủ lưu trữ web/chia sẻ trực tuyến?

Hoặc tôi cần để có được một VPS (và nếu như vậy, mà một trong những bạn giới thiệu và làm thế nào tôi có thể thiết lập máy chủ WebSocket có như tôi đã không bao giờ thực sự sử dụng một VPS trước!)

Cảm ơn bạn rất nhiều để đọc câu hỏi của tôi và trả lời. Tôi đã đọc tất cả các câu hỏi/câu trả lời khác ở đây liên quan đến ổ cắm nhưng chưa thể tìm thấy câu trả lời cho các câu hỏi trên của tôi. Hy vọng rằng tôi tìm thấy nó ở đây!

Trả lời

4

Đây là điều khó khăn.

Bạn cần thực thi tập lệnh server.php và không cần thoát. Nếu bạn có quyền truy cập SSH đến máy chủ chia sẻ của bạn, bạn có thể thực hiện nó giống như họ làm trên ảnh chụp màn hình và làm cho nó chạy như một nhiệm vụ nền sử dụng một cái gì đó giống như nohup:

$ nohup php server.php 
nohup: ignoring input and appending output to `nohup.out' 

Sau cách gọi này (bằng cách sử dụng kết nối SSH), bạn có thể thoát và quá trình này sẽ tiếp tục chạy. Mọi thứ mà tập lệnh in sẽ được lưu trữ thành nohup.out, mà bạn có thể đọc bất cứ lúc nào.

Nếu bạn không có quyền truy cập SSH và cách duy nhất để thực thi tập lệnh PHP là thông qua Apache là kết quả của yêu cầu trang, bạn có thể chỉ cần truy cập trang đó bằng trình duyệt và không bao giờ đóng trình duyệt. Nhưng sẽ có một thời gian trong một ngày hay cách khác và kết nối giữa bạn và Apache sẽ đóng lại, ngăn chặn hiệu quả việc thực thi tập lệnh server.php.

Và trong những trường hợp trước đó, nhiều máy chủ được chia sẻ sẽ không cho phép tập lệnh chạy vô thời hạn. Bạn sẽ nhận thấy rằng có dòng này trong server.php:

set_time_limit(0); 

Điều này cho PHP biết rằng không có giới hạn thời gian. Nếu máy chủ lưu trữ PHP chạy trong safe mode (mà nhiều người trong số họ thực hiện), thì bạn không thể sử dụng set_time_limit và thời hạn có thể là 30 giây hoặc thậm chí ít hơn.

Vì vậy, có, VPS có lẽ là đặt cược tốt nhất của bạn. Bây giờ, tôi không sở hữu một bản thân mình, và tôi không biết giá tốt/xấu là gì, nhưng tôi muốn nói HostGator có vẻ ổn.

+0

Câu trả lời hoàn hảo, chính xác những gì tôi cần! Cảm ơn bạn rất nhiều :) –

+0

Tuy nhiên, xin lưu ý rằng cộng đồng không phải là nhiều vào PHP khi một ứng dụng máy chủ có liên quan. Nếu bạn định mua một VPS, bạn nên xem [socket.io] (http://socket.io/) (Node.js) hoặc [Autobahn] (http://autobahn.ws/) (Python). Đó là những giải pháp tích hợp (các thư viện phù hợp cho các phía máy chủ và máy khách) đã được chứng minh là hoạt động tốt. Tất nhiên bạn có thể bắt đầu với máy chủ PHP tối giản của bạn để hiểu các giao thức và các khía cạnh "cấp thấp". – eepp

+0

Giải pháp PHP tốt nhất mà tôi biết là [Ratchet] (http://socketo.me). Có một số giải pháp tự lưu trữ cho các ngôn ngữ khác (xem [hướng dẫn công nghệ web thời gian thực] (http://www.leggetter.co.uk/real-time-web-technologies-guide)). Nói chung cho PHP tôi khuyên bạn nên sử dụng một giải pháp lưu trữ. – leggetter

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