2009-12-01 35 views
15

Vì vậy, nó là một ảnh dài, tôi sẽ bắt đầu với điều đó.Khám phá Bonjour trong Javascript? Có lẽ?

Có/có thể khám phá các dịch vụ HTTP được quảng cáo trong javascript một mình không?

Tại sao điều này hữu ích? Hãy tưởng tượng một dịch vụ địa phương chăm sóc một số dữ liệu (ví dụ như của bạn hiện tại lat/long), dữ liệu được tiếp xúc thông qua một webservice và được quảng cáo bởi Bonjour Zeroconf. Một trang web (từ xa) có thể muốn biết lat/long hiện tại của bạn và thay vì phải biết bạn đang chạy MyGPSserverVersion2 trang web có thể sử dụng javascript để tìm kiếm địa phương bonjour _Compatible_location_services._tcp và sau đó tiếp tục khi địa chỉ IP.

Nếu điều này là không thể (tôi nghĩ có lẽ trường hợp đó, Javascript bị hạn chế) thì các rào cản và ai có ý tưởng nào về cách vượt qua chúng?

Trả lời

3

này có vẻ là tốt bằng cách sử dụng số Sockets API của Chrome, nhưng tôi chỉ lấy một cái nhìn lướt qua.

mdns-browser dường như triển khai điều này bằng API đã nói.

+0

API ổ cắm chỉ được hiển thị với các ứng dụng chrome chứ không phải mã JS đang chạy trong trình duyệt. –

7

Câu trả lời ngắn gọn là không (ít nhất không phải trên nền tảng Linux).

Vui lòng bạn nên hỏi: Tôi đã làm việc để mang lại loại chức năng này trong tầm tay của trình duyệt web. Một trong những tôi thành công trong nỗ lực này là một NPAPI mDNS plugin for Chrome. Plugin cơ bản giao diện với Avahi zeroconf (mDNS - Multicast DNS Server).

Tôi hiện đang làm việc trên một cây cầu khác để đóng khoảng cách này: cơ sở dữ liệu "nhẹ" (a la CouchDb) sẽ được các ứng dụng dành cho máy tính để bàn đăng ký điểm kết thúc HTTP của họ. Sau đó, các tiện ích mở rộng sẽ đọc những điểm kết thúc đó từ Javascript và có thể tương tác trực tiếp với các dịch vụ được quảng cáo.

CẬP NHẬT: Có hy vọng qua W3C Service Discovery.

+0

Đó là âm thanh như nó có thể được thực sự hữu ích! Bạn có thể bị thuyết phục để chính thức hóa dịch vụ không? Tôi nghĩ rằng tôi có thể whip lên một ứng dụng ruby ​​bên ngoài mà sẽ cung cấp các dịch vụ tương tự trên Mac OS - nó muốn được thêm một chút cruft để tiếp tục chạy, nhưng nó sẽ có sẵn cho tất cả các trình duyệt. –

1

Thư viện này tuyên bố để làm điều đó trong Javascript: http://quickconnect.sourceforge.net/browser/index.html

Tôi phải thừa nhận rằng tôi sẽ rất quan tâm nếu nó đã có thể khám phá các dịch vụ bonjour trong javascript :)

+0

Tôi đã xem xét điều này và nó vẫn sử dụng một số Objective-C để hiển thị các hàm Bonjour của iOS cho Javascript. – parsley72

1

Tôi biết đây là một chuỗi cũ. Tìm thấy dự án github này cho phép bạn khám phá (và xuất bản) các dịch vụ bằng cách sử dụng mDNS - https://github.com/watson/bonjour

Thực hiện giao thức Bonjour/Zeroconf bằng JavaScript thuần túy. Xuất bản dịch vụ trên mạng cục bộ hoặc khám phá các dịch vụ hiện có bằng cách sử dụng DNS đa hướng.

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