Add WebSocket 0-RTT support (#375)

This commit is contained in:
RPRX 2021-03-14 07:10:10 +00:00 committed by GitHub
parent 9adce5a6c4
commit 60b06877bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 122 additions and 14 deletions

View file

@ -1,8 +1,11 @@
package websocket
import (
"bytes"
"context"
"crypto/tls"
"encoding/base64"
"io"
"net/http"
"sync"
"time"
@ -51,7 +54,13 @@ func (h *requestHandler) ServeHTTP(writer http.ResponseWriter, request *http.Req
}
}
h.ln.addConn(newConnection(conn, remoteAddr))
var extraReader io.Reader
if str := request.Header.Get("Sec-WebSocket-Protocol"); str != "" {
if ed, err := base64.StdEncoding.DecodeString(str); err == nil && len(ed) > 0 {
extraReader = bytes.NewReader(ed)
}
}
h.ln.addConn(newConnection(conn, remoteAddr, extraReader))
}
type Listener struct {