2015-01-19 1 views
0

각도 컨트롤러를 통해 소켓에 액세스하려고합니다. (지금은 'net'소켓이 있습니다. 자체적으로 작동하기 때문에).각도 조절기에서 'net'소켓에 액세스하는 방법은 무엇입니까?

아이디어는 다음과 같습니다. 프론트 엔드의 단추를 누르면 서버에서 다른 장치로 메시지를주고받는 기능이 작동합니다.

하지만 컨트롤러 소켓에 "소켓"을 가져올 수 없습니다.

소켓에 잘 작동 자신의

function sendCommand(command) { 
console.log ("trying to connect to "+ Host +":"+ Port); 
// Connect to the box: 
var client = new net.Socket(); 
client.connect(Port, Host, Connected); 
client.on('data', InputReceived); 
client.on('end', Disconnected); 
client.on('error', printError); 
client.write(command + '\n'); 
client.end(); 
} 

이 전송하고 잘 메시지를 수신합니다.

하지만 지금은 각도 애플 리케이션에서 동일한 작업을 수행하고 싶습니다. 그래서 어떻게 든 소켓에 컨트롤러를 가져 가야 할 것입니다.하지만 어떻게 작동하는지 모르겠습니다.

은 내가
.factory('Socket', function(){ 
var socket = require('net').socket.notify('create', true); 
}) 

을 시도했지만 (내가 추측이 노드 내에서 실행되지 이후) "정의되지 않은이 필요합니다."

컨트롤러 범위 내에서 또는이 작업을 수행하는 다른 방법으로 사용할 수있는 소켓을 만들려면 어떻게해야합니까? 당신이 쓴시

+0

컨트롤러가 Node.js에 의해 (서버 측에서) 실행되고 있습니까? 노드 플랫폼의'net' 모듈과 TCP 소켓은 일반적으로 클라이언트 측 JavaScript와 호환되지 않거나 사용할 수 있습니다. 웹 기반의 기능을 사용하려면 WebSocket을 살펴보십시오. –

+0

"상자"는 웹 소켓을 지원하지 않습니다. 원시 TCP 소켓이 필요합니다. 그래서 나는 간단한 넷이 갈 길이라고 생각했습니다. 컨트롤러가 노드에 의해 실행되고 있는지에 관해서는 확실히 바랍니다. 그것은 가능하지 않을까요? 확인하는 방법? 나는 서버에서 실행하고 싶습니다. 프론트 엔드에서 명령을 내리고 싶습니다. 하지만 소켓 개체에 연결할 수 없습니다. – user3787706

답변

0

이미

.factory('Socket', function(){ 
    var socket = require('net').socket.notify('create', true); 
}) 

지금 당신이해야 할 일은 당신이 컨트롤러에 등록 된 서비스를 전달하고, 서비스로 소켓을 등록했다. 예를 들어 모듈 이름은 당신이 쓸 수있는 응용 프로그램 인 경우,
.controller (your_ctrl_name, function (Socket) { 
    //Write the functionality you want to perform inside the controller 
} 

지금이 컨트롤러 블록 내에서 당신은 이전에 정의 된 소켓에 액세스 할 수 있습니다.

관련 문제