This repository has been archived by the owner on Apr 26, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
HeadwindFly
authored and
HeadwindFly
committed
Jul 28, 2016
1 parent
7feb9c7
commit 4af9ae8
Showing
19 changed files
with
2,714 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Compiled Object files, Static and Dynamic libs (Shared Objects) | ||
*.o | ||
*.a | ||
*.so | ||
|
||
# Folders | ||
_obj | ||
_test | ||
|
||
# Architecture specific extensions/prefixes | ||
*.[568vq] | ||
[568vq].out | ||
|
||
*.cgo1.go | ||
*.cgo2.c | ||
_cgo_defun.c | ||
_cgo_gotypes.go | ||
_cgo_export.* | ||
|
||
_testmain.go | ||
|
||
*.exe | ||
|
||
.idea/ | ||
*.iml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
language: go | ||
sudo: false | ||
|
||
matrix: | ||
include: | ||
- go: 1.4 | ||
- go: 1.5 | ||
- go: 1.6 | ||
- go: tip | ||
allow_failures: | ||
- go: tip | ||
|
||
script: | ||
- go get -t -v ./... | ||
- diff -u <(echo -n) <(gofmt -d .) | ||
- go vet $(go list ./... | grep -v /vendor/) | ||
- go test -v -race ./... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# This is the official list of Gorilla WebSocket authors for copyright | ||
# purposes. | ||
# | ||
# Please keep the list sorted. | ||
|
||
Gary Burd <gary@beagledreams.com> | ||
Joachim Bauch <mail@joachim-bauch.de> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,64 @@ | ||
# websocket | ||
WebSocket package for golang fasthttp. | ||
# Gorilla WebSocket | ||
|
||
Gorilla WebSocket is a [Go](http://golang.org/) implementation of the | ||
[WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. | ||
|
||
*This fork adds support for the Go HTTP package | ||
[fasthttp](https://github.com/valyala/fasthttp), which is a high performance, | ||
byte slice oriented alternative to `net/http`.* | ||
|
||
### Note that | ||
The original repo is [Gorilla WebSocket](https://github.com/gorilla/websocket), and this project is fork from [leavengood/websocket](https://github.com/leavengood/websocket). | ||
I am not the author, I just removed the supported for `net/http`, improved the **Upgrader** and provided some examples for fasthttp. | ||
|
||
### Documentation | ||
* [Chat example](examples/chat) | ||
|
||
### Status | ||
|
||
The Gorilla WebSocket package provides a complete and tested implementation of | ||
the [WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. The | ||
package API is stable. | ||
|
||
### Installation | ||
|
||
go get github.com/gorilla/websocket | ||
|
||
### Protocol Compliance | ||
|
||
The Gorilla WebSocket package passes the server tests in the [Autobahn Test | ||
Suite](http://autobahn.ws/testsuite) using the application in the [examples/autobahn | ||
subdirectory](https://github.com/gorilla/websocket/tree/master/examples/autobahn). | ||
|
||
### Gorilla WebSocket compared with other packages | ||
|
||
<table> | ||
<tr> | ||
<th></th> | ||
<th><a href="http://godoc.org/github.com/gorilla/websocket">github.com/gorilla</a></th> | ||
<th><a href="http://godoc.org/golang.org/x/net/websocket">golang.org/x/net</a></th> | ||
</tr> | ||
<tr> | ||
<tr><td colspan="3"><a href="http://tools.ietf.org/html/rfc6455">RFC 6455</a> Features</td></tr> | ||
<tr><td>Passes <a href="http://autobahn.ws/testsuite/">Autobahn Test Suite</a></td><td><a href="https://github.com/gorilla/websocket/tree/master/examples/autobahn">Yes</a></td><td>No</td></tr> | ||
<tr><td>Receive <a href="https://tools.ietf.org/html/rfc6455#section-5.4">fragmented</a> message<td>Yes</td><td><a href="https://code.google.com/p/go/issues/detail?id=7632">No</a>, see note 1</td></tr> | ||
<tr><td>Send <a href="https://tools.ietf.org/html/rfc6455#section-5.5.1">close</a> message</td><td><a href="http://godoc.org/github.com/gorilla/websocket#hdr-Control_Messages">Yes</a></td><td><a href="https://code.google.com/p/go/issues/detail?id=4588">No</a></td></tr> | ||
<tr><td>Send <a href="https://tools.ietf.org/html/rfc6455#section-5.5.2">pings</a> and receive <a href="https://tools.ietf.org/html/rfc6455#section-5.5.3">pongs</a></td><td><a href="http://godoc.org/github.com/gorilla/websocket#hdr-Control_Messages">Yes</a></td><td>No</td></tr> | ||
<tr><td>Get the <a href="https://tools.ietf.org/html/rfc6455#section-5.6">type</a> of a received data message</td><td>Yes</td><td>Yes, see note 2</td></tr> | ||
<tr><td colspan="3">Other Features</tr></td> | ||
<tr><td>Limit size of received message</td><td><a href="http://godoc.org/github.com/gorilla/websocket#Conn.SetReadLimit">Yes</a></td><td><a href="https://code.google.com/p/go/issues/detail?id=5082">No</a></td></tr> | ||
<tr><td>Read message using io.Reader</td><td><a href="http://godoc.org/github.com/gorilla/websocket#Conn.NextReader">Yes</a></td><td>No, see note 3</td></tr> | ||
<tr><td>Write message using io.WriteCloser</td><td><a href="http://godoc.org/github.com/gorilla/websocket#Conn.NextWriter">Yes</a></td><td>No, see note 3</td></tr> | ||
</table> | ||
|
||
Notes: | ||
|
||
1. Large messages are fragmented in [Chrome's new WebSocket implementation](http://www.ietf.org/mail-archive/web/hybi/current/msg10503.html). | ||
2. The application can get the type of a received data message by implementing | ||
a [Codec marshal](http://godoc.org/golang.org/x/net/websocket#Codec.Marshal) | ||
function. | ||
3. The go.net io.Reader and io.Writer operate across WebSocket frame boundaries. | ||
Read returns when the input buffer is full or a frame boundary is | ||
encountered. Each call to Write sends a single frame message. The Gorilla | ||
io.Reader and io.WriteCloser operate on a single WebSocket message. | ||
|
Oops, something went wrong.