使用Meteor监听原始TCP数据包

时间:2015-04-28 17:43:38

标签: meteor

我有一些设备(想想心率监测器)会将原始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变量返回空对象的任何想法?

1 个答案:

答案 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);
  }
});