Need help with spdy?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

SlyMarbo
121 Stars 13 Forks BSD 2-Clause "Simplified" License 449 Commits 14 Opened issues

Description

[deprecated] A full-featured SPDY library for the Go language.

Services available

!
?

Need anything else?

Contributors list

No Data

Deprecated

With the release of Go1.6 and the addition of http2 to the standard library, this package is no longer under active development. It is highly recommended that former users of this package migrate to HTTP/2.

spdy

GoDoc

A full-featured SPDY library for the Go language.

Note that this implementation currently supports SPDY drafts 2 and 3.

See these examples for a quick intro to the package.

Note that using this package with Martini is likely to result in strange and hard-to-diagnose bugs. For more information, read this article. As a result, issues that arise when combining the two should be directed at the Martini developers.

Servers

The following examples use features specific to SPDY.

Just the handler is shown.

Use SPDY's pinging features to test the connection: ```go package main

import ( "net/http" "time"

"github.com/SlyMarbo/spdy"

)

func Serve(w http.ResponseWriter, r *http.Request) { // Ping returns a channel which will send an empty struct. if ping, err := spdy.PingClient(w); err == nil { select { case response := <- ping: if response != nil { // Connection is fine. } else { // Something went wrong. }

    case 

} ```

Sending a server push: ```go package main

import ( "net/http"

"github.com/SlyMarbo/spdy"

)

func Serve(w http.ResponseWriter, r *http.Request) { // Push returns a separate http.ResponseWriter and an error. path := r.URL.Scheme + "://" + r.URL.Host + "/example.js" push, err := spdy.Push(path) if err != nil { // Not using SPDY. } http.ServeFile(push, r, "./content/example.js")

// Note that a PushStream must be finished manually once
// all writing has finished.
push.Finish()

// ...

} ```

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.