我试图通过一个角度控制器来访问一个套接字(现在我正在使用' 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 :(得分:0)
您在编写时已将套接字注册为服务,
.factory('Socket', function(){
var socket = require('net').socket.notify('create', true);
})
现在您需要做的是将您注册的服务传递给控制器。 例如,如果您的模块名称是app,则可以编写,
.controller (your_ctrl_name, function (Socket) {
//Write the functionality you want to perform inside the controller
}
现在,在此控制器块中,您可以访问之前定义的Socket。