2014-12-18 10 views
1

requireJS 또는 다른 모듈을 사용하여 클라이언트 측 javadript에서 네이티브 추가 기능 (nodejs에서 C/C++로 작성)을로드 할 수 있습니까?클라이언트 측 네이티브 애드온로드

저는 javascript 파일을로드하는 html 파일을 제공하는 nodejs + express 앱을 작성하고 있습니다. requireJS를 사용하고 AMD 모듈에이 클라이언트 측 js 파일을 컴파일하고 있습니다. nodejs 서버 측 js 스크립트에서 원시 메소드를로드하고 호출 할 수 있으며 클라이언트 측 js 스크립트에서 동일한 작업을 수행 할 수 있는지 궁금 할 수 있습니다.

답변

1

아니요, 클라이언트가 그런 브라우저를 통해 기본 응용 프로그램을 강제로 실행할 수 없습니다. 그것은 모든 해커가 모든 클라이언트에서 임의의 폭력적인 코드를 실행하도록 허용하는 매우 큰 보안 허점을 제공 할 것이며 엄격히 차단됩니다. C++ 애드온은 API를 통해 서버 측에서 실행할 수 있으며 대부분의 사용 사례를 해결할 수 있습니다.

+0

답변을 확장하려면 ** 1 ** ** 사용자가 기본 응용 프로그램을 다운로드하도록 요청하고 ** 필요한 이유를 설명하는 ** 웹에서의 경험을 확장하거나 확장 할 수 있습니다. 그런 다음 * tel *와 같은 특수 프로토콜을 사용하여 웹 응용 프로그램에서 기본 응용 프로그램을 호출하거나 ** 2) ** ** ajax **를 통해 응용 프로그램 상태 정보를 서버로 전달하고 거기에 원시 코드로 처리합니다. – maurice

+0

클라이언트가 네이티브 코드를 실행할 수 있도록 허용하는 보안 문제에 대해 알고 있었지만, 이것은 엄격하게 로컬 애플리케이션이기 때문에 nodej 환경 내에 방법이 있다면 바랬습니다. 나는 서버 측에서 네이티브 코드를 실행하고 결과를 다시 클라이언트 측에 공급할 수 있다고 생각한다. 감사! – Raghu

0

RequireJS는 달성하고자하는 요소에 영향을 미치지 않습니다. 네이티브 코드를로드하는 기능은 코드를 실행하는 JavaScript VM이 허용하는지 여부에 따라 다릅니다. VM에서 허용하지 않으면 RequireJS에서이 기능을 추가 할 수 없습니다.

노드가 허용하기 때문에 노드에서 할 수 있습니다.

브라우저는 허용하는 범위보다 훨씬 제한적입니다. Chris Franklin이 설명했듯이 웹 페이지에서 실행되는 JavaScript 스크립트는 일반적으로 원시 코드를로드 할 수 없으며 이는 보안상의 결함입니다.

C 또는 C++ 라이브러리에서 제공하는 기능을 브라우저 측에서 실행하는 방법 중 하나는 Emscripten과 같은 것을 사용하여 C 또는 C++ 코드를 JavaScript로 컴파일하는 것입니다.