James Coglan
23c8e8eb91
The file that loads the C code is not executable and does not need a shebang.
2014-04-17 02:29:56 +01:00
James Coglan
2f8f281615
Correct the draft-76 status line reason phrase.
2014-04-17 02:22:19 +01:00
James Coglan
ddd90b5438
Tweak the regexes for parsing HTTP.
2014-04-17 02:19:14 +01:00
Steven Williamson
08189c2a30
Minor fixes to allow native gems to load.
...
- websocket_mask.rb is in lib which in turn then loads websocket_mask.so
which should reside in the extensions directory external to the gem
directory at least as of rubygems 2.2.2.
- Changed extensions directory to match gemname as suggested in rubygems
guide
Simplifies loading the native extension but only tested on ruby 2.1.1
and only in my environment.
2014-04-14 17:18:54 +01:00
James Coglan
13780f7a61
Reduce MAX_LENGTH to 64 MB.
2013-12-27 18:19:09 +00:00
James Coglan
18170c0c61
Stop parsing Hybi once we go into a failure state.
2013-12-27 18:13:31 +00:00
James Coglan
74c4cc1190
Extend max-length checking to draft-{75,76}.
2013-12-20 10:27:48 +00:00
James Coglan
fafd949641
Extend max-length checking to short (<= 125 bytes) frames and to sequences of continuation frames.
2013-12-20 10:23:53 +00:00
James Coglan
e3587fcbb1
Add a max_length option to the Hybi/Client class.
2013-12-02 21:55:43 +00:00
James Coglan
eae69314f1
Add support for Basic Auth URLs to the client driver.
2013-09-09 20:28:29 +01:00
James Coglan
46af51d04e
Dup the listener list during EventEmitter#emit so that events unregistered during this call don't cause others to be skipped.
2013-08-04 13:57:08 +01:00
James Coglan
cd53761699
Fix EventEmitter#listener_count in the case where the event type does not exist, and add EventEmitter#listners.
2013-08-04 12:11:37 +01:00
James Coglan
ac3bb51cbd
Adjust encoding operations so that encoding is explicit at the call site, and all strings written to I/O are ASCII-8BIT.
2013-07-02 09:46:29 +01:00
James Coglan
ee5fe9ec5f
Messages should be queued when the client is in the 'pre-connecting' state, as the client is initially.
2013-06-06 10:25:10 +01:00
James Coglan
ae84f0eaf7
Headers#inspect should call @raw.inspect.
2013-05-12 15:12:44 +01:00
James Coglan
8cd6ff1dde
Set status and headers as soon as they are known, so they are available in case of an error.
2013-05-12 14:49:59 +01:00
James Coglan
be00c65ebd
Make Headers#inspect do something useful.
2013-05-12 14:01:15 +01:00
James Coglan
cfd2806683
Remove an unneeded instance variable.
2013-05-12 12:41:51 +01:00
James Coglan
3902b8bc4f
Around here we use square brackets for arrays.
2013-05-11 23:03:17 +01:00
James Coglan
074a8a2f16
Add #status and #headers methods to the Client driver.
2013-05-11 20:42:06 +01:00
James Coglan
5a7fadbcbe
Add API for setting custom handshake headers.
2013-05-11 20:28:36 +01:00
James Coglan
020c094e96
Add a driver for handling TCP servers, where we don't want to make the user parse the HTTP request.
2013-05-11 19:28:59 +01:00
James Coglan
ba696e8e2c
Implement a proper streaming HTTP response parser. This makes the client-side parser more robust and also gives a way to building a driver for TCP servers.
2013-05-11 16:56:29 +01:00
James Coglan
93dd655d6d
Implement EventEmitter#on as a method that calls #add_listener instead of being an alias, so that overriding the latter affects the former.
2013-05-04 18:02:40 +01:00
James Coglan
c9388b7627
Add a listener_count method to EventEmitter.
2013-05-04 18:00:17 +01:00
James Coglan
c5526b1c09
Return false from websocket? unless the request method is GET.
2013-05-04 17:46:35 +01:00
James Coglan
be1f1cdc35
Rename the module to websocket-driver.
2013-05-04 16:43:25 +01:00
James Coglan
9a28b3f90d
Various bits of housekeeping.
2013-05-03 09:04:14 +01:00
James Coglan
86b3235e82
499 and 4999 are not the same number, James.
2013-05-02 01:25:12 +01:00
James Coglan
f61a5e60f2
Add more robust error handling for Hybi and Client and emit error events when the protocol goes wrong.
2013-05-02 00:09:34 +01:00
James Coglan
7b0daf6f3c
Implement the EventEmitter interface.
2013-04-30 08:53:33 +01:00
James Coglan
8855a0e720
Refer to the draft-76 request body as 'body' rather than 'head'.
2013-04-29 22:02:19 +01:00
James Coglan
8b975a0031
Return the protocol version from the Client handler.
2013-04-29 21:37:35 +01:00
James Coglan
38b19487c5
A few corrections I made while porting to Node.
2013-04-29 20:28:47 +01:00
James Coglan
2662d43b08
Some small refactorings I spotted while porting this to Node.
2013-04-29 00:14:45 +01:00
James Coglan
24d3e2ec85
Change the server() method to rack().
2013-04-21 18:25:41 +02:00
James Coglan
10da09afbd
Always emit the empty string instead of nil as the closure reason in Hybi.
2013-04-20 22:04:24 +01:00
James Coglan
787697dc59
Some more large renaming, this time putting everything inside the WebSocket::Protocol namespace.
2013-04-20 18:22:09 +01:00
James Coglan
948e6fb2e2
Switch to using event objects.
2013-04-20 15:17:21 +01:00
James Coglan
eee225441e
Empty the buffer once the whole handshake response has been received by the client, else HTTP headers are published as messages.
2013-04-20 14:56:44 +01:00
James Coglan
56dd161ee1
Add text() and binary() methods as sugar over frame().
2013-04-20 13:59:16 +01:00
James Coglan
1be1a33eb1
Rename all of the things: Faye::WebSocket is now WebSocket::Protocol.
2013-04-20 13:00:25 +01:00