James Coglan
|
aa25393a6c
|
Check for GET in isWebSocket() and expose the isSecureRequest() method.
|
2013-05-04 17:27:25 +01:00 |
|
James Coglan
|
88202e66d5
|
Stream.end() should write() if given an empty stream.
|
2013-05-04 17:26:59 +01:00 |
|
James Coglan
|
25c075a408
|
Rename the module to websocket-driver.
|
2013-05-04 16:42:44 +01:00 |
|
James Coglan
|
f16ad50db0
|
Raise an error if the length header is larger than the max int that JS can represent precisely.
|
2013-05-04 13:33:27 +01:00 |
|
James Coglan
|
d716650499
|
Add more robust error handling for Hybi and Client and emit error events when the protocol goes wrong.
|
2013-05-02 00:09:14 +01:00 |
|
James Coglan
|
cbb33e4924
|
Allow default handler options to be overridden.
|
2013-05-01 00:59:54 +01:00 |
|
James Coglan
|
23f296b926
|
Replace the getVersion() method with a version property.
|
2013-05-01 00:55:49 +01:00 |
|
James Coglan
|
b56a960bb2
|
s/addListener/on/
|
2013-05-01 00:24:33 +01:00 |
|
James Coglan
|
f6481422b9
|
Firm up the event system. Make handlers only emit their own events, and then map those to Messages and IO events with a bit of glue. Only emit 'data' when streams are readable, same for 'end'.
|
2013-04-30 23:35:51 +01:00 |
|
James Coglan
|
9975aa089b
|
Use the Node EventEmitter class to publish events.
|
2013-04-30 08:20:14 +01:00 |
|
James Coglan
|
d2e958096c
|
Refer to the draft-76 request body as 'body' rather than 'head'.
|
2013-04-29 22:00:39 +01:00 |
|
James Coglan
|
e9bdd17cef
|
Correct a typo in stream docs.
|
2013-04-29 21:54:52 +01:00 |
|
James Coglan
|
e98eb72c6c
|
Remove comments about Node streams.
|
2013-04-29 21:51:00 +01:00 |
|
James Coglan
|
5dfe9ecdad
|
Return the protocol version from the Client handler.
|
2013-04-29 21:35:57 +01:00 |
|
James Coglan
|
c957874493
|
Make protocol.http() select the right driver for the request.
|
2013-04-29 20:46:17 +01:00 |
|
James Coglan
|
b354dd69fa
|
Implement the draft-76 protocol.
|
2013-04-29 20:27:35 +01:00 |
|
James Coglan
|
c70c5618da
|
Only end the messages stream when we trigger onclose.
|
2013-04-29 19:11:26 +01:00 |
|
James Coglan
|
6c025087f7
|
Emit 'end' from the messages stream when the socket's onclose event runs.
|
2013-04-29 19:08:10 +01:00 |
|
James Coglan
|
9ed82bc0ab
|
Extract the IO and Messages streams and flesh them out to implement backpressure.
|
2013-04-29 19:00:08 +01:00 |
|
James Coglan
|
e3b8033c58
|
Placeholder for draft-76 support just to get the common tests passing.
|
2013-04-29 08:56:05 +01:00 |
|
James Coglan
|
950cd9f1e2
|
Implement and test draft-75.
|
2013-04-29 08:40:05 +01:00 |
|
James Coglan
|
6f7942d5b7
|
Begin writing the draft75 module.
|
2013-04-29 07:48:09 +01:00 |
|
James Coglan
|
41ddd82932
|
Add tests for Hybi and Client handlers and fix some minor bugs.
|
2013-04-28 23:22:05 +01:00 |
|
James Coglan
|
847bdc1773
|
Strip the repo down to just the protocol handlers.
|
2013-04-28 19:04:03 +01:00 |
|
James Coglan
|
62a0c7597f
|
First steps toward streaming I/O-independent parsing. Implement the Hybi and Client protocol handlers as stateful protcol drivers with two duplex streams, one for messages and one for I/O.
|
2013-04-28 18:55:58 +01:00 |
|
James Coglan
|
86f882f189
|
Return early rather than have an else-clause.
|
2013-02-10 23:41:37 +00:00 |
|
James Coglan
|
87f1abad08
|
s/close/finalize/ -- I missed one rename in the last commit.
|
2012-12-24 16:43:41 +00:00 |
|
James Coglan
|
b86f505441
|
If WebSocket.close() is called without asking for an ack, then don't return if we're in the CLOSING state. This can happen if one peer sends a closing frame and the other peer terminates TCP before sending the reply, and as currently implemented this will no emit a close event or end the Node stream.
|
2012-12-24 16:37:57 +00:00 |
|
James Coglan
|
ee22f75959
|
Remove trailing whitespace.
|
2012-12-22 23:13:04 +00:00 |
|
James Coglan
|
7b63baa5a6
|
Fix specs on v0.9.
|
2012-12-22 23:12:08 +00:00 |
|
Greg Soltis
|
3280f38c27
|
Fix check of readyState for immediate close
|
2012-10-15 11:34:44 -07:00 |
|
James Coglan
|
bd6e89f290
|
If close() is called in the CONNECTING readyState, then close the TCP connection immediately without waiting for the handshake to complete.
|
2012-10-13 16:59:58 +01:00 |
|
James Coglan
|
d071ec3acd
|
Check that incoming requests have an output stream before doing anything with it.
|
2012-07-08 20:30:53 +01:00 |
|
James Coglan
|
7f18af7c90
|
Use Connection:close on EventSource connections.
|
2012-05-21 19:41:26 +01:00 |
|
James Coglan
|
b42cdf741d
|
Add error code 1011.
|
2012-04-06 13:52:21 +01:00 |
|
James Coglan
|
bd7c52dfa2
|
Use / as the default path if the client URI has no path.
|
2012-04-01 22:57:16 +01:00 |
|
James Coglan
|
3675cfb798
|
Treat anything but a Buffer as a text message in WebSocket#send.
|
2012-02-25 09:49:53 +00:00 |
|
James Coglan
|
1222308201
|
Return boolean from EventSource.send().
|
2012-02-16 23:15:16 +00:00 |
|
James Coglan
|
8c9ae84740
|
Treat numbers as strings when passed to Socket.send().
|
2012-02-16 23:09:29 +00:00 |
|
James Coglan
|
8f71ec1f8b
|
Set EventSource readyState during constructor and attach pings and event listeners after sending handshake.
|
2012-02-13 00:26:43 +00:00 |
|
James Coglan
|
74b76e56b7
|
Only send ping messages for EventSource if the user specifies an interval, for symmetry with WebSocket.
|
2012-02-12 23:59:20 +00:00 |
|
James Coglan
|
faa1f11c28
|
Clean up ping code.
|
2012-02-11 14:06:43 +00:00 |
|
James Coglan
|
a9659df7d8
|
Set readyState to OPEN as soon as possible.
|
2012-02-11 13:36:12 +00:00 |
|
James Coglan
|
25794989f0
|
Push ping logic down into HybiParser.
|
2012-02-11 12:07:40 +00:00 |
|
James Coglan
|
29cae88d2c
|
Provide a default value (empty string) for WebSocket ping messages.
|
2012-02-11 12:02:04 +00:00 |
|
James Coglan
|
e6c03b7629
|
Add a ping() interface to server-side WebSocket and EventSource connections.
|
2012-02-11 11:59:13 +00:00 |
|
James Coglan
|
d18a818699
|
Do not buffer send() calls during the CONNECTING stage of WebSocket clients -- browsers throw an error in this case.
|
2012-02-11 11:30:28 +00:00 |
|
James Coglan
|
6de9e01e69
|
Buffer calls to ws.send() until the handshake is completed.
|
2012-02-11 11:22:28 +00:00 |
|
James Coglan
|
51d5978283
|
Pass options object to tls.connect or it hangs on Node 0.7.
|
2012-02-08 22:44:04 +00:00 |
|
James Coglan
|
c3bf5e9fa8
|
Fix client connection error detection on Node 0.7.
|
2012-02-08 22:25:44 +00:00 |
|