Gary Burd
a87eae1d6f
Add hooks to support RFC 7692 (per-message compression extension)
...
Add newCompressionWriter and newDecompressionReader fields to Conn. When
not nil, these functions are used to create a compression/decompression
wrapper around an underlying message writer/reader.
Add code to set and check for RSV1 frame header bit.
Add functions compressNoContextTakeover and decompressNoContextTakeover
for creating no context takeover wrappers around an underlying message
writer/reader.
Work remaining:
- Add fields to Dialer and Upgrader for specifying compression options.
- Add compression negotiation to Dialer and Upgrader.
- Add function to enable/disable write compression:
// EnableWriteCompression enables and disables write compression of
// subsequent text and binary messages. This function is a noop if
// compression was not negotiated with the peer.
func (c *Conn) EnableWriteCompression(enable bool) {
c.enableWriteCompression = enable
}
2016-06-29 17:03:55 -07:00
Gary Burd
b5389d0dc2
Implement RFC 6455, section 4.4
2016-06-29 13:56:55 -07:00
Gary Burd
a68708917c
Coalesce outbound messages in chat example
2016-06-06 16:20:22 -07:00
Gary Burd
3ddc984058
Merge pull request #136 from reeze/add-handler-getter
...
Add Ping/Pong handler Getter functions
2016-05-31 22:17:19 -07:00
Reeze Xia
c9ce64ea05
Add Ping/Pong handler getter methods
2016-06-01 11:26:10 +08:00
Gary Burd
8b29b78138
Add Sec-WebSocket-Extensions header parser
...
Also, improve token list header parser.
2016-05-31 09:32:45 -07:00
Gary Burd
be01041b66
Reduce memory allocations in NextReader, NextWriter
...
Redo 8b209f6317
with support for old
versions of Go.
2016-05-31 05:44:45 -07:00
Gary Burd
50d660d6ac
Revert "Reduce memory allocations in NextReader, NextWriter"
...
This reverts commit 8b209f6317
.
2016-05-30 01:53:33 -07:00
Gary Burd
afffb15196
Merge branch 'varnames'
2016-05-26 21:01:19 -07:00
Gary Burd
24cddddcc0
Use single character receiver names in chat example
2016-05-26 21:00:24 -07:00
Gary Burd
8b209f6317
Reduce memory allocations in NextReader, NextWriter
2016-05-26 14:07:24 -07:00
Gary Burd
2301bcbf5c
Cleanup js in chat example
2016-05-26 10:19:40 -07:00
Jean de Klerk
be95f72b73
Meaningful names for connection, message
2016-05-18 08:57:16 -06:00
Jean de Klerk
a6108176e8
Meaningful names for hub
2016-05-18 08:56:16 -06:00
Gary Burd
1f512fc3f0
Handle invalid close frames
...
Send protocol error if close code or payload are invalid.
Fixes Autobahn tests 7.5.1, 7.9.*.
2016-04-28 09:34:18 -07:00
Gary Burd
a724ba4528
Test truncated frames at all positions
2016-04-25 08:42:53 -07:00
Tarmigan Casebolt
ae46df13e9
Fix Read() to return errUnexpectedEOF when EOF is received before all bytes in the frame have been read
2016-04-24 22:30:05 -07:00
Gary Burd
703e8da19b
Drop Go 1.3 from supported configurations
...
The code does not build on 1.3 because tls.Config does not contain the
GetCertificate field. This can be worked around using build constraints,
but it does not seem worth the trouble.
2016-04-23 15:56:33 -07:00
Gary Burd
5a00fb2e99
Do not shallow copy crypto/tls.Config
...
The Config contains a sync.Once that should not be copied.
2016-04-23 15:46:58 -07:00
Gary Burd
3d02343cd3
.travis.yml go vet fix.
2016-04-22 22:25:05 -07:00
Gary Burd
6b3d49710b
Fix filewatch example
...
Use last modified time when the time is parsed without error. This prevents an
extra file read at start of watch for a connection.
Fixes #125 .
2016-04-21 17:30:17 -07:00
Gary Burd
e2e3d8414d
Document that default ping handler can block
2016-03-13 12:14:46 -07:00
Gary Burd
a622679ebd
Add IsWebSocketUpgrade
2016-03-09 10:36:44 -08:00
Gary Burd
c45a635370
Remove Go 1.1 from Travis config
...
Go 1.1 cannot fetch 'go vet'.
2016-03-02 15:27:37 -08:00
Gary Burd
0b8990dd8b
Run 'go vet' instead of 'go tool vet' in Travis
2016-03-02 15:14:48 -08:00
Gary Burd
be42fcd8c9
Merge pull request #113 from elithrar/patch-1
...
Update .travis.yml to build Go 1.6
2016-03-02 14:59:35 -08:00
Gary Burd
d1d4086b14
Fix go vet warning
...
Move variables from example function arguments to package level
variables to avoid `go vet` warning.
2016-03-02 14:56:29 -08:00
Matt Silverlock
ac929f8383
Update .travis.yml to build Go 1.6
2016-02-26 13:26:45 -08:00
Gary Burd
5c91b59efa
Improve Upgrader.Upgrade doc
2016-02-21 13:34:30 -08:00
Gary Burd
4935ba31a2
Merge pull request #111 from seikichi/support_proxy_auth
...
Support proxy authorization for websocket client
2016-02-17 09:43:51 -08:00
Seiichi KONDO
360dfe00ec
Support proxy authorization for websocket client
2016-02-17 21:46:45 +09:00
Gary Burd
0e2713e645
Address common gotchas with package
...
Update documentation to explicitly state that applications must break out of a
read loop on error.
Detect application read loops spinning on a failed connection and panic.
Detect concurrent writes and panic. The detection is best-effort.
Update documentation to state that connections respond to close frames.
2016-02-16 15:03:54 -08:00
Gary Burd
e85d897656
Merge pull request #110 from tabone/close-frame-response
...
Close Frame Response
2016-02-16 13:07:31 -08:00
Luca Tabone
bf696496cb
When sending a Close frame in response, the endpoint typically echos the status code it received.
2016-02-16 21:31:16 +01:00
Gary Burd
b824a5d853
Merge pull request #109 from vially/patch-1
...
Fix documentation typos
2016-02-10 16:29:04 -08:00
Valentin Hăloiu
6b3bf61ce8
Fix documentation typos
2016-02-11 02:22:44 +02:00
Gary Burd
234959944d
Add text description to close errors
2016-01-28 08:48:56 -08:00
Gary Burd
5434f8b69b
Improve IsUnexpectedCloseError examples
2016-01-19 18:24:46 -08:00
Gary Burd
615f23bc98
Add IsUnexpectedCloseError
2016-01-19 13:06:29 -08:00
Gary Burd
a2d85bcbfc
Add IsCloseError, improve doc about errors
2016-01-19 09:20:21 -08:00
Gary Burd
3986be78bf
Split raw query from opaque in URL parser
...
Prior to this change, the client passed query strings from the
application to the network via the net/url#URL.Opaque field. This works,
but may not be something the authors of the net/url and net/http
packages expect. To play it safe, this change parses the query string to
the net/url#URL.RawQuery field.
2015-12-15 21:10:58 -08:00
Gary Burd
9727ab9cda
Test URL path and query
2015-12-15 20:25:50 -08:00
Gary Burd
844dd6d40e
Add closing handshake code to echo example client
2015-12-09 16:50:38 -08:00
Gary Burd
361d4c0ffd
Improve echo web UI
...
Based on feedback from anon.
2015-11-02 11:10:34 -08:00
Gary Burd
c93e5540b8
Add web client to echo example
2015-11-02 10:39:51 -08:00
Gary Burd
567453a710
Require GET in Upgrader.Upgrade.
...
Return error if the request method is not GET.
Remove all request method tests from the examples.
2015-11-02 09:08:11 -08:00
Gary Burd
a4e0143e1f
Do not allow duplicate headers in handshake
2015-11-02 08:39:02 -08:00
Gary Burd
044091b51d
Fix lint warning
2015-11-02 08:25:46 -08:00
Gary Burd
527637c0f3
Merge pull request #90 from wolfeidau/add_proxy_support
...
Proxy support for websocket clients.
2015-10-22 20:53:04 -07:00
Mark Wolfe
70eca1b8e7
Add Proxy support for websocket clients.
...
- Uses `http.ProxyFromEnvironment` for configuration in line with the
golang standard library.
2015-10-23 09:28:47 +11:00