twitter hosebird客户端maven使用情况

twitter hosebird客户端maven使用情况,maven,twitter,twitter-hbc,Maven,Twitter,Twitter Hbc,嗨,我是这方面的新手,但我想学习如何使用hosebird客户端,我下载了它,但从自述文件中不知道如何使用它。我在pc中安装了EclipseJavaEE和maven,但从hbc中的自述文件看不到如何将其连接到我的eclipse。有人能帮我列出我必须做的事情吗? 这是自述文件,我以前从未使用过maven。 谢谢 ##入门 Hosebird客户端分为两个模块:hbc核心和hbc-twitter4j。hbc核心模块使用消息队列,消费者可以轮询原始字符串消息,而hbc-twitter4j模块使用[twi

嗨,我是这方面的新手,但我想学习如何使用hosebird客户端,我下载了它,但从自述文件中不知道如何使用它。我在pc中安装了EclipseJavaEE和maven,但从hbc中的自述文件看不到如何将其连接到我的eclipse。有人能帮我列出我必须做的事情吗? 这是自述文件,我以前从未使用过maven。 谢谢

##入门
Hosebird客户端分为两个模块:hbc核心和hbc-twitter4j。hbc核心模块使用消息队列,消费者可以轮询原始字符串消息,而hbc-twitter4j模块使用[twitter4j](http://twitter4j.org)侦听器和数据模型位于消息队列顶部,以提供解析层。
最新的hbc工件发布到maven central。将hbc引入项目应该非常简单,只需将以下内容添加到maven pom.xml文件中即可:
```xml
com.twitter
hbc核心
2.2.0 
```
###快速启动
声明连接信息:
```爪哇
/**设置阻塞队列:确保根据流的预期TPS适当调整这些队列的大小*/
BlockingQueue msgQueue=新链接的BlockingQueue(100000);
BlockingQueue eventQueue=新链接的BlockingQueue(1000);
/**声明要连接到的主机、端点和身份验证(基本身份验证或oauth)*/
Hosts hosebirdHosts=新的HttpHosts(Constants.STREAM_HOST);
StatusesFilterEndpoint HoseBindPoint=新的StatusesFilterEndpoint();
//可选:设置以下内容和跟踪术语
列表如下=列表。newArrayList(1234L,566788L);
List terms=Lists.newArrayList(“twitter”、“api”);
hosebirdEndpoint.以下(以下);
hosebirdEndpoint.trackTerms(术语);
//这些秘密应该从配置文件中读取
身份验证hosebirdAuth=newOAuth1(“consumerKey”、“ConsumerCret”、“token”、“secret”);
```
创建客户端:
```爪哇
ClientBuilder=newclientbuilder()
.name(“Hosebird-Client-01”)//可选:主要用于日志
.hosts(hosebirdHosts)
.身份验证(hosebirdAuth)
.终点(hosebirdEndpoint)
.processor(新的StringDelimitedProcessor(msgQueue))
.eventMessageQueue(eventQueue);//可选:如果要处理客户端事件,请使用此选项
客户端hosebirdClient=builder.build();
//尝试建立连接。
hosebirdClient.connect();
```
现在,msgQueue和eventQueue将开始被消息/事件填充。从这些队列中随意阅读。
```爪哇
//在不同的线程上,或在多个不同的线程上。。。。
而(!hosebirdClient.isDone()){
字符串msg=msgQueue.take();
某物(味精);
利润();
}
```
您可以关闭与的连接
```爪哇
hosebirdClient.shutdown();
```
###快速入门示例
要运行示例流示例,请执行以下操作:
```
mvn安装和mvn执行:java-pl hbc示例-Dconsumer.key=XYZ-Dconsumer.secret=secret-Daccess.token=ABC-Daccess.token.secret=ABCSECRET
```
您可以在上找到这些值http://dev.twitter.com 导航到您的应用程序之一,然后导航到API密钥选项卡。
该页上的API密钥和机密值对应于hbc的`-Dconsumer.*`属性。
或者,您可以在hbc examples/pom.xml中设置这些属性
##细节
###身份验证:
在客户端中声明OAuth1凭据(首选):
```爪哇
新OAuth1(“consumerKey”、“ConsumerCret”、“token”、“tokenSecret”)
```
在客户端中声明基本身份验证凭据:
```爪哇
新密码(“用户名”、“密码”)
```
确保不要将令牌/密码作为字符串直接传递给初始值设定项。它们应该从配置文件中读取,该配置文件没有使用您的代码或类似的东西签入。安全第一。
###指定端点
声明要连接到的StreamingEndpoint。这些类驻留在包com.twitter.hbc.core.endpoint中,并对应于我们的所有端点。默认情况下,为所有StreamingEndpoints设置HTTP参数“delimited=length”,以与处理器兼容(下一节)。如果您使用的是StringDelimitedProcessor,则必须设置此参数。有关可用公共端点和我们支持的http参数的列表,请参阅[Twitter的流式API文档](https://dev.twitter.com/docs/streaming-apis/streams/public).
####过滤流:
```爪哇
StatusesFilterEndpoint=新的StatusesFilterEndpoint();
//可选:设置以下内容和跟踪术语
列表如下=列表。newArrayList(1234L,566788L);
List terms=Lists.newArrayList(“twitter”、“api”);
终点。以下(以下);
端点.trackTerms(术语);
```
####消防喉水流:
```爪哇
StreamingEndpoint=新状态FirehoseEndpoint();
//可选:设置要连接到的分区
List partitions=Lists.newArrayList(0,1,2,3);
端点。分区(partitions);
//默认情况下,delimited=length已设置为供StringDelimitedProcessor使用
//执行此操作以取消设置(确保确实要执行此操作)
//端点。分隔(false);
```
####设置处理器:
hosebird客户端使用“处理器”的概念,它处理流并将单个消息放入提供的BlockingQueue。我们提供了一个StringDelimitedProcessor类,它应该与提供的StreamingEndpoints一起使用。处理器将BlockingQueue作为其参数,客户端将在流式传输字符串消息时将其放入。
设置StringDelimitedProcessor非常简单:
```爪哇
新的StringDelimitedProcessor(msgQueue);
```
###Sitestream连接的控制流
Hosebird提供[sitestreams的控制流支持](https://dev.twitter.com/docs/streaming-apis/streams/site/control).
要使用hosebird客户端进行控制流调用,首先创建一个客户端。调用connect()创建到支持控制流的流的连接时,您收到的第一条消息将是streamId。你会想等一等的
c:\downloads\hbc-master>c:\downloads\apache-maven-3.2.3-bin\apache-maven
-3.2.3\bin\mvn compile
c:\downloads\hbc-master\mybuild>jar cvf Twitter-api.jar com twitter4j