从客户端调用服务器执行方法



我正在玩使用meteorjs的twitter流媒体应用程序。但是,当用户输入新的track关键字时,我有一个问题,即破坏流并替换为新的流。当有用户输入一个新的轨道关键字时,我如何能够调用twitter流来破坏和流新的轨道在服务器端?

在client.js

//

Template.executefb.events({
'keyup input#searchFeedback': 
  function(e) { 
    if(e.which == '13')
    {
      var tag = $('#searchFeedback').val();
      var exist = searchTag(tag, 'feedback');
      if(typeof exist == 'undefined')
      {
        Meteor.call('addNewTag',tag, 'feedback');
       //I want to call server to call Meteor.call('getLatestTag', 'feedback');
       // and Meteor.call('streamTwit', Fiber, twit, feedback); in server again

      }
     Meteor.call('clearSearchbar');
    }
  }
});
在server.js

//

var require;
var ntwitter;
var Fiber;

require = Npm.require;
ntwitter = require('ntwitter');
Fiber = require('fibers');

var twit = new ntwitter({
consumer_key: 'some key',
consumer_secret: 'some key',
access_token_key: 'some key',
access_token_secret: 'some key'
});
//get latest tag entered by the user from mongodb
var feedback = Meteor.call('getLatestTag', 'feedback');
//this method call starts twitter streaming
Meteor.call('streamTwit', Fiber, twit, feedback);

提前感谢:)

您可以将此添加到您的server.js

Meteor.methods({
    changeStream: function() {
        //get latest tag entered by the user from mongodb
        var feedback = Meteor.call('getLatestTag', 'feedback');
        //this method call starts twitter streaming
        Meteor.call('streamTwit', Fiber, twit, feedback);
    }
});

在你的客户端:

if(typeof exist === 'undefined') {
    Meteor.call('addNewTag', tag, 'feedback', function() {
        Meteor.call("changeStream");
    });
}

注意:您可以简单地将tag传递给changeStream方法,而不是等待addNewTag方法的回调,然后放弃服务器端getLatestTag,因为您已经拥有它。

相关内容

  • 没有找到相关文章

最新更新