2011-02-14 4 views
1

원격 액세스를 위해 .net 응용 프로그램에 NoVNC를 통합하는 방법은 무엇입니까?.net 응용 프로그램에서 NoVNC 통합

+0

내 답변이 도움이 되었습니까? 그렇지 않다면 구체적으로 찾고있는 것에 관해 질문을 명확히 할 수 있습니까? – kanaka

답변

3

noVNC 클라이언트를 .net 응용 프로그램에 통합 할 것인지 또는 noVNC를 .net 응용 프로그램에 연결할 수 있는지 여부에 따라 다릅니다. 나는 왜 .net 응용 프로그램에 VNC 클라이언트를 추가하는 더 효율적인 방법이 있기 때문에 전자를하고 싶지는 모르겠다. 그래서 두 번째 옵션 (noVNC을 사용하는 .net 응용 프로그램에 연결)에 대답 할 것입니다.

noVNC는 VNC 클라이언트입니다. RFB/VNC protocol의 클라이언트 부분을 구현합니다. noVNC가 연결되는 서버는 RFB/VNC 프로토콜의 서버 부분을 구현해야합니다. 가장 간단한 옵션은 단일 Window를 제공 할 수있는 별도의 VNC 서버를 실행하는 것입니다 (응용 프로그램이 VNC 서버를 제어 할 수 있음).

  • 인코딩 협상
  • 하는 시간
  • 클라이언트와 일을 통해 응용 프로그램의 시각적 상태를 추적

    • VNC 인증 : 그렇지 않으면 당신은 응용 프로그램 자체에있는 모든 VNC/RFB의 의미를 구현해야 마우스 상태 및 키보드 상태 정보
    • 응답 클라이언트 클라이언트가 해당 영역을 마지막으로 요청한 이후로 변경된 요청 영역 내의 사각형을 계산하여 FBU (프레임 버퍼 업데이트) 요청을합니다. 이 직사각형을 클라이언트와 서버가 지원하는 최상의 인코딩으로 마샬링합니다.

    또한 웹 브라우저 원시 TCP 소켓 연결 만 웹 소켓 연결을 시작할 수 없습니다. WebSockets 핸드 셰이크 및 프레이밍 외에도 WebSockets 만 현재 UTF-8로 인코딩 된 페이로드를 허용합니다. 이러한 한계를 극복하기 위해 noVNC는 websockify을 사용하여 원시 TCP 소켓과 웹 소켓을 변환합니다. WebSocket UTF-8 제한 사항을 해결하기 위해 websockify base64는 브라우저와의 모든 트래픽을 인코딩/디코딩합니다. websockify의 기능은 VNC 서버 기능과 함께 구현 될 수 있습니다. 실제로 this fork of libvncserver에는 WebSocket (및 base64 인코딩)이 내장되어 있습니다 (noVNC는 websockify없이 직접 연결할 수 있습니다).

    .net 응용 프로그램에서 VNC/RFB 및 WebSocket 지원을 구현하려는 경우 this C# code을 WebSockets 기능에 대한 참조로 사용할 수 있습니다.

  • 관련 문제