Reading votes from Twitter
In your $GOPATH/src folder, alongside other projects, create a new folder called socialpoll for this chapter. This folder won't be a Go package or a program by itself, but it will contain our three component programs. Inside socialpoll, create a new folder called twittervotes and add the obligatory main.go template (this is important as main packages without a main function won't compile):
package main
func main(){}
Our twittervotes program is going to:
Load all polls from the MongoDB database using
mgoand collect all options from theoptionsarray in each documentOpen and maintain a connection to Twitter's streaming APIs looking for any mention of the options
Figure out which option is mentioned and push that option through to NSQ for each tweet that matches the filter
If the connection to Twitter is dropped (which is common in long-running connections that are actually part of Twitter's streaming API specification) after a short delay (so that we do not bombard...