A client for http streaming API's in Go: Twitter, Flowdock, DataSift, Custom
Go
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 60 commits ahead of hoisie:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
data
examples
flowdock
Readme.md
escape.go
jsonencode.go
log.go
stream.go
twittertypes.go
twittertypes_test.go

Readme.md

httpstream was forked from https://github.com/hoisie/twitterstream

A Go http streaming client. http-streaming is most-associated with the twitter stream api. This client works with twitter, but has also been tested against the data-sift stream as well as http://flowdock.com

This is an example of using the Twitter stream sample :

package main

import "github.com/araddon/httpstream"

func main() {
    stream := make(chan []byte)
    done := make(chan bool)
    client := httpstream.NewBasicAuthClient("yourusername", "pwd", func(line []byte) {
        stream <- line
    })
    go func() {
        _ := client.Sample(done)
        for line := range stream {
            println(string(line))
            // heavy lifting like json serialization, etc
        }
    }()
    _ = <- done
}

There are a few more samples in the Examples folder.

Use a channel instead of func :

    stream := make(chan []byte)
    done := make(chan bool)
    client := httpstream.NewChannelClient("yourusername", "pwd", stream)
    go func() {
        for line := range stream {
            println(string(line))
        }
    }()
    client.Sample(done)
    _ = <- done

For more information about streaming apis