2010-07-13 34 views
31

Tôi hiện đang phát triển một ứng dụng web có phần mà tôi phải mở một máy cụ thể thông qua VNC để giám sát máy tính để bàn của mình.
Máy khách VNC dựa trên web?

Tôi bắt buộc phải có ứng dụng khách VNC dựa trên web, có nghĩa là không nên cài đặt máy chủ hoặc bất kỳ tệp nào khác ở phía máy khách. Máy khách vừa mở trình duyệt web và đặt IP của máy được nhắm mục tiêu để mở trong trình duyệt và do đó chạy một máy khách VNC dựa trên web.

Tài nguyên tốt để bắt đầu trong trường này là gì?

CẬP NHẬT 2013-10-29

Chỉ FYI: trở lại sau đó tôi đã kết thúc bằng guacamole như @Dolph khuyến khích.
Đó là:

  • rất dễ dàng để thiết lập
  • rất dễ dàng để làm theo mã của nó và ngược kỹ sư nó (miễn là bạn biết java)
  • nó vẫn được sử dụng tại công ty tôi đã sử dụng làm việc cho và là mạnh mẽ

Trả lời

23

Kiểm tra các Guacamole project:

Guacamole là cổng máy khách từ xa không cần máy khách. Nó hỗ trợ các giao thức chuẩn như VNC và RDP. Chúng tôi gọi nó là không cần thiết vì không cần plugin hoặc phần mềm ứng dụng khách. Nhờ HTML5, một khi Guacamole được cài đặt trên máy chủ, tất cả những gì bạn cần để truy cập vào máy tính để bàn là trình duyệt web.

Mặt khác, nó yêu cầu máy chủ Java để ủy quyền. Tuy nhiên, đây phải là tầm thường, ngay cả khi bạn chưa có một máy chủ Java và chạy (Tomcat là khá đơn giản, và Guacamole's instructions là đơn giản):

Guacamole được tách ra thành hai mảnh: guacamole-server, cung cấp proxy guacd và các thư viện liên quan, và guacamole-client, cung cấp cho khách hàng được phục vụ bởi thùng chứa servlet của bạn, thường là Tomcat.

guacamole-client có sẵn ở dạng nhị phân, nhưng guacamole-server phải được tạo từ nguồn. Đừng nản chí: việc xây dựng các thành phần của Guacamole từ nguồn không khó như âm thanh, và quá trình xây dựng được tự động hóa. Bạn chỉ cần chắc chắn rằng bạn đã cài đặt các công cụ cần thiết trước thời hạn. Với sự phụ thuộc cần thiết tại chỗ, việc xây dựng Guacamole chỉ mất vài phút.

+0

thx rất nhiều, tôi muốn sử dụng guacamole thực sự nhưng proxy java là vấn đề bởi vì công ty của tôi không có nó trên máy chủ của họ và ông chủ của tôi không thiên về cài đặt yêu cầu của nó như tomcat .. Bạn có nghĩ rằng chúng giống như một add on hay sthg để làm cho nó hoạt động trên một máy chủ không có một thùng chứa servlet? – shadesco

+0

Tôi thứ hai Dolph của "nên tầm thường" - Tôi khá ngu dốt của Java, nhưng thấy nó rất dễ dàng để thiết lập. – offby1

4

Hãy thử tightVNC.com. Lần cuối cùng tôi sử dụng nó, bạn chỉ có thể trỏ nó vào IP của máy và sử dụng nó trong trình duyệt của bạn.

+6

Giải pháp của TightVNC yêu cầu máy chủ ** đang chạy TightVNC. Máy chủ TightVNC có một tùy chọn để cho phép các yêu cầu web đến, mà nó đáp ứng với một applet cho VNC trở lại chính nó. Nói cách khác, "client" không thể được sử dụng để kết nối với các máy chủ VNC tùy ý. http://www.tightvnc.com/winst.php#start_java – Dolph

0

Ngoài câu trả lời của Dolph, có this, một ứng dụng Java để kết nối với máy chủ VNC.

14

Có nhiều giải pháp khác nhau, nhưng không có giải pháp nào cho phép ứng dụng web thuần túy 100% (tức là không có Flash, Java hoặc ActiveX) kết nối trực tiếp với máy chủ VNC thuần túy 100%. Vấn đề lớn nhất là các trình duyệt web không thể tạo các kết nối TCP đơn giản.Điều gần nhất là tiêu chuẩn WebSockets không đầy đủ, nhưng thậm chí đó là một giao thức khung có một cái bắt tay giống như HTTP để khởi tạo nó.

Mặc dù các chương trình Adobe Flash có thể tạo kết nối TCP đơn giản, chúng vẫn yêu cầu máy chủ bạn kết nối trả lời với tệp chính sách trên cổng 843 hoặc cổng bạn đang kết nối tới (http://code.google.com/p/doctype/wiki/ArticleFlashSecurity).

Như đã lưu ý, Guacamole yêu cầu một proxy Java để giao tiếp giữa giao diện dựa trên HTML5 của họ và máy chủ VNC.

Một tùy chọn khác là noVNC (github) có ứng dụng khách VNC đầy đủ trong Javascript/HTML5 (không giống như Guacamole trong đó giao thức VNC nằm trong proxy). Tuy nhiên, noVNC vẫn bị giới hạn bởi thực tế là Javascript không thể tạo các kết nối TCP đơn giản. noVNC sử dụng WebSockets để kết nối với máy chủ. noVNC bao gồm một WebSockets chung cho cầu nối TCP mà bạn có thể chạy trên máy chủ (hoặc máy khách cho vấn đề đó) và nó không có phụ thuộc phụ để cài đặt.

Cập nhật: QEMU, PocketVNC và các dự án có nguồn gốc từ LibVNCServer hiện đã tích hợp sẵn hỗ trợ máy chủ WebSocket để không cần kết nối với máy chủ websockify để kết nối với noVNC. Ngoài ra, tôi quên lưu ý là một tuyên bố từ chối trách nhiệm mà tôi đã tạo noVNC.

1

Có thể bạn sẽ tiếp cận với giải pháp này - http://www.onlinevnc.com? Theo tôi có thể thấy họ đã giải quyết được vấn đề cho Flash Security khi Flash không thể thiết lập kết nối trực tiếp tới cổng TCP/IP VNC. Ngoài ra tôi thấy trên trang web của họ cung cấp để tích hợp người xem trong bất kỳ trang web hoặc ứng dụng khác.

+0

Đã thử, không hoạt động. Máy OSX, được kết nối một cách hạnh phúc bằng máy tính để bàn/máy khách Android). Dựa trên Flash. – tutejszy

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