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 program by itself, but 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
mgo, and collect all options from theoptionsarray in each documentOpen and maintain a connection to Twitter's streaming APIs looking for any mention of the options
For each tweet that matches the filter, figure out which option is mentioned and push that option through to NSQ
If the connection to Twitter is dropped (which is common in long-running connections as it is actually part of Twitter's streaming API specification) after a short delay (so we do not bombard Twitter with connection...