【问题标题】:emit socket.io and sailsjs (Twitter API)发出 socket.io 和sailsjs (Twitter API)
【发布时间】:2013-07-16 07:43:16
【问题描述】:

我得到了 twits,我可以在控制台中打印所有这些,但我想将数据发送到视图,但我不知道如何使用 socketio 来做到这一点。

有什么想法吗?

var TwitterController = {

'index': function(req,res) {

var twitter = require('ntwitter');

var twit = new twitter({
  consumer_key: '...',
  consumer_secret: '...',
  access_token_key: '...',
  access_token_secret: '...'
});

twit.stream('statuses/filter', { track: ['dublin', 'spain']} , function(stream) {
  stream.on('data', function (data) {
    console.log(data.user.screen_name + ': ' + data.text);

    req.socket.emit('tweet', {
                    user: data.user.screen_name,
        text: data.text
    });

  });
});
       res.view();
},
};
module.exports = TwitterController;

在视图中我正在尝试打印所有推文

<ul class="tw"></ul>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:1337');


  jQuery(function($){
    var twList = $('ul.tw');
  });

  socket.on('tweet', function (data) {
    twList.prepend('<li>' + data.user + '</li>');
  });
</script>

【问题讨论】:

    标签: node.js socket.io sails.js


    【解决方案1】:

    如果您试一试 Sails v0.9,您会更轻松地使用它,因为捆绑的示例会为您处理样板连接逻辑。

    关键是,不要使用res.view(),而是使用res.json(tweets) 提供推文。

    在本例中,您使用的是流,因此您可以利用 res.pipe(stream)

    然后你可以在前端使用sails.io.js 向/twitter 发送socket.io 请求,并将结果用于娱乐和获利。

    以下前端代码假定您使用的是 Sails v0.9.x 中捆绑的微型客户端 SDK (sails.io.js):

    socket.get('/twitter', function (tweets) {
      console.log('Got the following tweets from the server :: ', tweets);
    }
    

    请记住,socket.get 只是socket.emit 之上的一种便捷方法,可与开箱即用的 Sails 路由器一起使用。如果您不想通过 HTTP 访问特定于 pubsub 的代码,您仍然可以做所有您喜欢的自定义 socket.io 事情。

    sails.io.js 还支持 socket.postsocket.putsocket.delete,具有与可比较的 jQuery AJAX 方法类似的 API(例如 $.post

    【讨论】:

      猜你喜欢
      • 2015-03-19
      • 2019-11-23
      • 2015-09-22
      • 2011-09-20
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多