从Meteor Server建立TCP连接

 877762833_166d01 发布于 2023-02-03 11:00

我需要一些关于流星的建议.我想将现有的express/node.js应用程序移到meteor框架上,以利用服务器存储 - MongoDB和框架的MVC特性.我的应用程序需要进行重大的重构.我当前的应用服务器与远程主机建立TCP连接,每秒都会发出字符串数据.此应用服务器处理来自远程主机的字符串数据,然后将其发送到应用客户端.由于meteor使用node.js,我认为这就像将当前应用服务器代码的部分TCP连接移动到流星服务器代码一样简单.这是一个坚实的逻辑,还是在草地上有一条蛇?

当然,总会尝试,看看会发生什么.我把这样的东西放在Meteor.startup()中

var net = Npm.require('net'),
    dataStream = net.createConnection(5000,"localhost");
dataStream.setEncoding('utf8');
dataStream.on('data', function(data) {
    var line = data.trim();
    Messages.insert({name:"line",message: line, time:Date.now()});
});

我抱怨有关在光纤外面运行的Meteor代码.是否正确更新客户端和服务器可见的集合?我假设更新将保留在服务器上并推送到客户端,我将有一个视图来显示更改.

1 个回答
  • 我遇到了完全相同的问题(实际上,我是在制作TCP服务器而不是客户端),但是通过在每个回调函数周围添加Meteor.bindEnvironment来解决它.喜欢:

    // ..set- and fire up a tcp server..
    var server = net.createServer( Meteor.bindEnvironment( function ( socket ) {
      // ..with a listener that processes the commands..
      socket.addListener( "data", Meteor.bindEnvironment( function ( data ) {
    
        // ..working with collections now just works!
    
      } ) );
    } ) ).listen( port );
    

    有关此方法的详细说明,请参阅https://www.eventedmind.com/feed/meteor-what-is-meteor-bindenvironment.

    2023-02-03 11:03 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有