2011-06-18 43 views
5

Tôi muốn phát triển một hệ thống trò chuyện dựa trên web gần thời gian thực. Bất kỳ đề xuất về cách thực hiện điều này thông qua jQuery, bất kỳ gotchas để tìm cho ra, và điều Comet này tôi giữ đọc là gì?Trò chuyện văn bản dựa trên web?

Lý tưởng nhất, tôi muốn hỗ trợ tối đa khoảng 5.000 cuộc trò chuyện đồng thời.

Trả lời

3

Sao chổi, còn được gọi là Đẩy Ajax, thường được gọi là "Reverse AJAX". Thay vì kéo thông tin từ máy chủ trong khoảng thời gian đều đặn, dữ liệu được đẩy từ máy chủ đến trình duyệt khi cần. Điều đó đòi hỏi một kết nối mở, trong đó có một số triển khai.

Tôi khuyên bạn nên sử dụng APE. Đây là bản trình diễn: http://www.ape-project.org/demos/1/ape-real-time-chat.html

  • Ưu điểm: Sẽ rất nhạy bén và thời gian thực.
  • Bất lợi: Bạn cần để thiết lập máy chủ APE trên máy chủ web của bạn.
3

Sao chổi là thuật ngữ "đẩy", được tạo để tránh máy khách (mã javascript) liên tục thăm dò ý kiến ​​máy chủ. Điều này có thể gây ra vấn đề băng thông, vì bạn phải tạo (có thể) một kết nối TCP mới, sau đó liên hệ với máy chủ http, anh ta chạy một số logic phía máy chủ và sau đó gửi một phản hồi tới máy khách. Với sao chổi, nếu máy chủ quyết định rằng bạn nên recive một số thông tin (ví dụ, tin nhắn trò chuyện mới), ông trực tiếp gửi nó cho khách hàng.

Có một số triển khai khác nhau, bạn có thể bắt đầu here.

thực hiện đơn giản nhất tecnique là khung nội tuyến ẩn, nhưng tôi khuyên bạn nên bỏ phiếu dài mà có thể kiểm soát được nhiều hơn.

Một điều nữa, thake xem HTML5 websokets, mà có thể là một giải pháp thú vị cho vấn đề của bạn (không phải là rất tương thích với trình duyệt hiện tại, dù sao)

1

Check-out Node.jsnowjs cho node.js. Node.js giúp bạn xây dựng các máy chủ rất hiệu quả bằng cách sử dụng JavaScript phía máy chủ và nowjs là một thư viện cho phép bạn tạo các ứng dụng web thời gian thực. Thậm chí còn có một dàn diễn viên màn hình ví dụ đặt cùng một ứng dụng trò chuyện cơ bản trong 12 dòng mã. Bạn cũng có thể thanh toán Socket.io là một thư viện nút khác giúp bạn xây dựng các ứng dụng thời gian thực bằng cách trừu tượng hóa các cơ chế truyền tải khác nhau và cung cấp cho bạn giao diện hợp nhất để mã hóa (hỗ trợ WebSockets, Flash Sockets, AJAX polling dài, JSONP Polling và Forever IFrames).

Tôi nhận ra bạn đã gắn thẻ câu hỏi của bạn PHP nhưng nếu bạn đang nghiêm túc xem xét việc viết một hệ thống có thể mở rộng với số lượng công sức ít nhất (tương đối nói) thì học Node.js đáng giá thời gian của bạn (và đường cong học tập không phải là dốc) bạn có thể đã biết JS).

+0

Tính đến năm 2013, kết hợp socket.io/node.js đã trở thành một giải pháp được chấp nhận rộng rãi để sử dụng trong trường hợp như vậy. –

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