2009-05-31 34 views
34

Tôi chắc chắn Wave không thăm dò ý kiến ​​máy chủ mỗi mili giây để tìm hiểu xem người dùng khác đã nhập gì đó ... vậy làm cách nào tôi có thể biết người khác đang nhập gì khi họ nhập? Và không phải hogging băng thông.Tính năng nhập trực tiếp, thời gian thực hoạt động như thế nào trong Google Wave?

+0

Có một số thông tin trong một trong các câu trả lời ở đây http://stackoverflow.com/questions/928744/what-technologies-is-google-wave-using –

Trả lời

38

Persistent HTTP, Comet

Giữ kết nối HTTP của bạn sống động và gửi các ký tự như họ đang gõ

* Chỉnh sửa trong năm 2014: cũng có, hãy nhìn vào WebSocket và HTTP/1.1 Upgrade header. Các trình duyệt bắt đầu triển khai việc này vào khoảng năm 2010, vì vậy tôi sẽ thêm câu trả lời này vào câu trả lời gốc.

+0

Liệu nó thực sự sử dụng Comet bcoz nó sử dụng GWT? –

+5

sao chổi là một từ thông dụng, nó không phải là bất kỳ khuôn khổ hoặc công nghệ được xác định. bạn có thể thực hiện nó với gwt, không có gwt, và tuy nhiên bạn thích –

6

Họ có thể sử dụng Ổ cắm web, còn gọi là sự kiện do máy chủ gửi: http://www.w3.org/TR/websockets Giao thức cơ bản có thể được tìm thấy (dưới dạng bản nháp) at the IETF.

Cập nhật: có vẻ như WebSockets chưa thực hiện bất kỳ triển khai nào; và a video from Google I/O (đến 11:00) nói về yêu cầu HTTP GET đã tồn tại lâu dài.

+0

Không biết có hạn chế như thế đối với người dùng! Tôi sẽ bỏ phiếu cho bạn để cung cấp cho bạn một số đại diện nhiều hơn nữa. –

+0

Cảm ơn bạn đã bình chọn, bây giờ tôi đã chỉnh sửa câu trả lời của tôi để bao gồm "nhiều hơn một siêu liên kết", và do đó thực sự liên kết với bản dự thảo IETF. –

1

Đầu cơ thuần túy nhưng có thể sử dụng sự kiện Server Side DOM từ thông số HTML 5 không?

3

Xem video Google Wave: Powered by GWT xung quanh ở phút 55 (gần cuối)

Q: Làm thế nào bạn thực hiện kết nối liên tục, kết nối sống lâu http

A: Kế hoạch tương lai: HTML5 Web Sockets. Lâu dài hơn. Đó là những gì chúng tôi sử dụng vào lúc này.

Hỏi: Có nền tảng hoặc thư viện nào để chúng tôi có thể tải xuống và chơi cùng không?

A: Không chắc chắn. Đừng nghĩ như vậy

P.S .: Đó là những gì anh ấy nói. Với tôi nó đã không có ý nghĩa nhiều ("kế hoạch tương lai" vs "sử dụng tại thời điểm này"). Bất kỳ người nói tiếng Anh bản ngữ nào có thể muốn xác minh xem tôi có phiên âm chính xác không?

+3

Thật khó hiểu vì nó hơi ngoài ngữ cảnh. Câu trả lời có nghĩa là về cơ bản: Có, chúng tôi đang sử dụng các yêu cầu treo (aka "Comet"). Kế hoạch tương lai là chuyển sang WebSockets khi triển khai có sẵn. –

+0

liên kết là 404 –

+0

@Tom: Không cho tôi – Casebash

0

Có lẽ sao chổi bây giờ là websocket trong tương lai. Bởi vì nó hoạt động trong Firefox 3.5 và từ những gì tôi đã đọc websocket chỉ có sẵn trong các bản xây dựng hàng đêm của FF ... Tôi có thể sai mặc dù ... vì nó dường như không hoạt động trong IE cả.

4

Server Push in GWT

server push là Chờ, ứng phó, Đóng, mở lại mô hình:

  • Chờ: Khi mã GWT thực hiện cuộc gọi máy chủ của bạn đối với một số dữ liệu mà bạn chưa có, hãy cố định (chờ)

  • Trả lời: Sau khi dữ liệu được yêu cầu là
    có sẵn, hãy trả lời

  • Đóng: Sau đó, đóng kết nối.

  • Mở lại: Khi mã GWT của bạn nhận được phản hồi, ngay lập tức mở một kết nối mới để truy vấn sự kiện tiếp theo.

-1

Tôi cho rằng họ sử dụng yêu cầu ajax. Làm một XMLHttpRequest, đó là không đồng bộ, và khi máy chủ có một cái gì đó để gửi trình duyệt của bạn gọi lại javascript đã được đăng ký được dữ liệu và làm bất cứ điều gì với nó. Vì vậy, về cơ bản trình duyệt yêu cầu sự kiện tiếp theo, xử lý nó, lặp lại vô thời hạn.

+0

XMLHttpRequest được gửi một lần, nếu không có câu trả lời nào được nhận, kết nối sẽ bị chấm dứt, kết nối đó. không ai chờ đợi bất cứ điều gì. công nghệ "sao chổi" nào, yêu cầu GET vô tận .. đọc về điều này trên wiki. – holms

1

toàn bộ lý do cho WebSockets là để trình duyệt giữ một ổ cắm hai hướng mở cho máy chủ để có thể sử dụng liên lạc thời gian thực. Khi một người nào đó gõ vào đầu bên kia, trong một máy khách dạng sóng, nó kích hoạt một sự kiện được gửi đến máy chủ và máy chủ lần lượt xem ai cũng sẽ nhận được sự kiện và chuyển cho họ sự kiện, trong trường hợp này là thư được đánh máy.

WebSocket và Sao chổi khác nhau.

Granville

0

tôi đã dành một thời gian đảo ngược-kỹ thuật mã khách hàng Google Wave (không biết xấu hổ cắm cho http://antimatter15.com/misc/read/ mà là một chỉ đọc client nào cho google sóng cho tất cả các sóng công cộng mà không cần robot hoặc các tiện ích mà là một rất hữu ích hơn một tháng trước khi Google không khởi chạy bản nâng cấp).

Dù sao, Google sử dụng khung GWT với các khía cạnh nhất định của thư viện Google Đóng cửa (thực sự là nguồn mở và được ghi lại) và họ sử dụng thư viện goog.net.BrowserChannel, từ các nhận xét này cũng được sử dụng cho chức năng trò chuyện trong gmail.

http://closure-library.googlecode.com/svn/docs/closure_goog_net_browserchannel.js.html

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