0

私はmeteorjsを使ってTwitterストリーミングアプリで遊んでいます。ただし、ユーザーが新しいトラック キーワードを入力すると、ストリームを破棄して新しいものに置き換えるのに問題があります。ユーザーが新しいトラックのキーワードを入力したときに、サーバー側で新しいトラックを破棄してストリーミングするために 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);

前もって感謝します :)

4

1 に答える 1

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にメソッドに up を渡すことができます。サーバー側は既に持っているため、省略できます。changeStreamaddNewTaggetLatestTag

于 2013-05-23T16:52:49.183 に答える