2013-05-23 3 views
0

Я играю в twitter потоковое приложение, используя meteorjs. Однако у меня есть проблема, разрушающая поток и заменяемая новым, когда пользователь вводит новое ключевое слово трека. Как я могу назвать потоковое твиттер для уничтожения и потока нового трека на стороне сервера, когда пользователь вводит новое ключевое слово трека?call server для выполнения метода от клиента

// в 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); 

Заранее спасибо :)

ответ

1

Вы можете добавить это ваш 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, потому что вы уже есть.

Смежные вопросы