2010-07-19 32 views
12

Có cách nào có thể để các trình duyệt giao tiếp với nhau qua lan/wan mà không cần sử dụng máy chủ (ngang hàng trực tiếp) không?Trình duyệt để giao tiếp trình duyệt không có máy chủ?

+0

Đối với tất cả những người hỏi tại sao, tôi đã quan tâm để xem có giải pháp chuyển tập tin đơn giản/nhanh chóng qua lan mà không cần người dùng tải xuống bất kỳ thứ gì không. –

Trả lời

5

Hình như có thể có hy vọng trên đường chân trời: http://www.w3.org/TR/webrtc/

+0

Ví dụ: https://github.com/cowbell/sharedrop Điều này sử dụng HTML5 và WebRTC để chuyển qua mạng LAN –

0

Câu trả lời ngắn gọn: Không. Không thể.

Câu trả lời dài: Bạn có thể viết một applet java có chữ ký triển khai máy chủ web trong mỗi trình duyệt. Sau đó trình duyệt "a" có thể nói chuyện với trình duyệt "b" applet (không 'đóng tab đó!). Sau đó, bạn sẽ có quyền truy cập hạn chế vào trạng thái trình duyệt khác theo cách này.

Tương tự, bạn có thể viết plugin/trình bổ sung có thể thực hiện được nhiều điều tương tự.

Câu hỏi thực sự là tại sao bạn muốn thực hiện việc này? Bạn đang cố gắng để thực hiện? Trả lời câu hỏi đó và chúng tôi có thể đưa ra giải pháp.

0

Có, họ có thể, nhưng chúng sẽ cần phải được thiết kế để thiết lập kết nối (hoặc sẽ cần phải có một mô-đun thực hiện nó).

Ngay cả khi tôi tự hỏi tại sao họ sẽ cần phải ..

1

IIRC, Opera phát hành một số loại Ngoài trình duyệt của họ mà nhúng một máy chủ web chỉ chức năng:

http://unite.opera.com/

Không chắc nó thực sự đi đâu, nhưng tôi nghĩ thời gian của nó sẽ đến.

+0

+1 thú vị. Nhưng nó không tạo ra kết nối trực tiếp, nó sử dụng các máy chủ opera để tránh các hạn chế của NAT (thực sự là cách thông minh duy nhất để làm điều này dù sao đi nữa) http://www.jorgemarsal.com/blog/2009/06/16/how- does-opera-unites-file-sharing-service-work/ –

+0

Ah, tôi hiểu rồi. Tôi đã giả định nó đã được sử dụng zeroconf/Bonjour để giải quyết các khách hàng địa phương. Ồ, có lẽ một ngày nào đó trong tương lai nó sẽ được thực hiện với node.client.js + CouchDB hoặc một cái gì đó thú vị như thế. – guns

1

Trong HTML/Javascript thuần túy? Chắc là không.

Theo hiểu biết của tôi, không có cách nào tốt trong JavaScript gốc để nghe các kết nối. Trong HTTP, máy khách sẽ mở một cổng, gửi một yêu cầu và nhận một phản hồi. Bạn có thể sử dụng XHTTP hoặc lớp tương tự để thực hiện một yêu cầu nhưng không có cách nào tốt trong một trang web bình thường để tạo ra một máy chủ ở đầu bên kia mà sẽ lắng nghe yêu cầu.

Cho rằng, tôi biết rằng Flash cung cấp thư viện ổ cắm cho phép bạn nghe kết nối. (Nếu tôi tạo một đối tượng bằng cách sử dụng một trong hai công nghệ này, bạn có thể nghe các yêu cầu kết nối từ bất kỳ máy khách nào (giả sử rằng bạn không phải là tường lửa) hoặc một số thiết bị lọc kết nối khác), duy trì một ổ cắm mở và gửi bất cứ thứ gì bạn muốn trên dây.

Tóm tắt:

  1. Có lẽ không thể làm điều này trong Javascript/HTML/CSS.

  2. NHƯNG, bạn có thể tắt trong Flash hoặc Silverlight.

0

Flash - Stratus. Công cụ mới trong flash mới nhất cung cấp kết nối P2P.

0

Nếu các trình duyệt đang ở phía sau bức tường lửa, bạn có thể xem xét sử dụng NAT traversal. Các giao thức như STUN và TURN được WebRTC sử dụng để thực hiện việc này. Trang web này có một số ví dụ hay hướng dẫn đẹp HTML5 Rocks

0

Có bạn có thể thử http://httprelay.io bằng các cuộc gọi AJAX. Nó đơn giản như vậy:

* Send data: POST https://httprelay.io/link/your_secret_channel_id 
* Receive data GET https://httprelay.io/link/your_secret_channel_id 
Các vấn đề liên quan