我有一些设备(想想心率监测器)会将原始TCP数据包发送到我的Meteor服务器。当它收到数据时,它会写入mongodb&然后我将使用Meteor将该数据发布并无效到客户端。
据我了解,sockJS无法执行原始TCP数据包,因此我设置了net
服务器来接收它们。代码在纯节点中工作得很好,但是当我将它与npmRequire
一起使用时,我收到以下错误:
Exception while invoking method 'startNet' TypeError: Object #<Object> has no method 'createServer'
这是我的代码:
Meteor.methods({
'startNet': function (port) {
var net = Meteor.npmRequire('net');
net.createServer(function (socket) {
console.log("connected");
socket.on('data', function (data) {
console.log(data.toString());
});
}).listen(port);
}
});
为什么net
变量返回空对象的任何想法?
答案 0 :(得分:1)
将需求移出方法应该有效:
net = Meteor.npmRequire('net');
Meteor.methods({
'startNet': function (port) {
net.createServer(function (socket) {
console.log("connected");
socket.on('data', function (data) {
console.log(data.toString());
});
}).listen(port);
}
});