Add more information to README.md.

This commit is contained in:
Gary Burd 2013-10-29 06:29:20 -07:00
parent bc7ffd7c1e
commit 2903ebc236
1 changed files with 37 additions and 14 deletions

View File

@ -1,26 +1,49 @@
# WebSocket
# Gorilla WebSocket
This project is a [Go](http://golang.org/) implementation of the
Gorilla WebSocket is a [Go](http://golang.org/) implementation of the
[WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol.
The project passes the server tests in the [Autobahn WebSockets Test
Suite](http://autobahn.ws/testsuite) using the application in the [examples/autobahn
subdirectory](https://github.com/gorilla/websocket/tree/master/examples/autobahn).
## Documentation
### Documentation
* [Reference](http://godoc.org/github.com/gorilla/websocket)
* [Chat example](https://github.com/gorilla/websocket/tree/master/examples/chat)
## Features
### Status
- Send and receive ping, pong and close control messages.
- Limit size of received messages.
- Stream messages.
- Specify IO buffer sizes.
- Application has full control over origin checks and sub-protocol negotiation.
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
### Installation
go get github.com/gorilla/websocket
### Protocol Compliance
The Gorilla WebSocket package passes the server tests in the [Autobahn WebSockets 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">gorilla</a></th>
<th><a href="http://godoc.org/code.google.com/p/go.net/websocket">go.net</a></th>
</tr>
<tr>
<tr><td>Protocol support</td><td>RFC 6455</td><td>RFC 6455</td></tr>
<tr><td>Limit size of received message</td><td>Yes</td><td>No</td></tr>
<tr><td>Send pings and receive pongs</td><td>Yes</td><td>No</td></tr>
<tr><td>Send close message</td><td>Yes</td><td>No</td></tr>
<tr><td>Read message using io.Reader</td><td>Yes</td><td>No, see note</td></tr>
<tr><td>Write message using io.WriteCloser</td><td>Yes</td><td>No, see note</td></tr>
<tr><td>Encode, decode JSON message</td><td>Yes</td><td>Yes</td></tr>
</table>
Note: The go.net io.Reader and io.Writer operate across WebSocket message
boundaries. Read returns when the input buffer is full or a message boundary is
encountered, Each call to Write sends a message. The Gorilla io.Reader and
io.WriteCloser operate on a single WebSocket message.