ruby – EventMachine和Twitter流媒体API
发布时间:2020-12-17 03:21:23 所属栏目:百科 来源:网络整理
导读:我正在使用Twitter流API运行EventMachine流程.如果流的内容不频繁,我总是有问题. 这是脚本的最小版本: require 'rubygems'require 'eventmachine'require 'em-http'require 'json'usage = "#{$0} user password track"abort usage unless user = ARGV.shift
我正在使用Twitter流API运行EventMachine流程.如果流的内容不频繁,我总是有问题.
这是脚本的最小版本: require 'rubygems' require 'eventmachine' require 'em-http' require 'json' usage = "#{$0} <user> <password> <track>" abort usage unless user = ARGV.shift abort usage unless password = ARGV.shift abort usage unless keywords= ARGV.shift def startIt(user,password,keywords) EventMachine.run do http = EventMachine::HttpRequest.new("https://stream.twitter.com/1/statuses/filter.json",{:port=>443}).post( :head =>{ 'Authorization' => [ user,password ] },:body =>{"track"=>keywords},:keepalive=>true,:timeout=>-1) buffer = "" http.stream do |chunk| buffer += chunk while line = buffer.slice!(/.+r?n/) if line.length>5 tweet=JSON.parse(line) puts Time.new.to_s+"#{tweet['user']['screen_name']}: #{tweet['text']}" end end end http.errback { puts Time.new.to_s+"Error: " puts http.error } end rescue => error puts "error rescue "+error.to_s end while true startIt user,keywords end 如果我搜索像“iphone”这样的关键字,一切都运作良好 解决方法
您应该添加设置以防止连接超时.
试试这个 : http = EventMachine::HttpRequest.new( "https://stream.twitter.com/1/statuses/filter.json",:connection_timeout => 0,:inactivity_timeout => 0 ).post( :head => {'Authorization' => [ user,:body => {'track' => keywords} ) 祝好运,基督教 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 为什么要在Swift类中使用所需的初始化程序?
- LCD Backlight 的分析
- react-native for android 学习笔记 (1) DrawerLayoutAndro
- 根据另一个标记的值将属性添加到XML标记
- c# – 如何使用AppDomain限制静态类的范围以便线程安全使用
- iphone – NSMutableData保存到文件
- c – “UTF-16”和“std :: wstring”有什么区别?
- Flash Builder – Flash Builder最佳实践,用于处理多个版本
- ArcGIS Oracle ST常用查询
- vs 2012编译cocos2d-x 3.2的hellocpp,可以调试运行,但直接