Chris Boden
dd0040aee9
Micro optimization on RFC Frame
2012-07-13 15:00:00 -04:00
Chris Boden
a2188a449e
[WebSocket] Performance
...
Added unit tests for Rsv bit checks
Using binary operators to check bits resulting in massive performance gains
2012-07-13 11:38:16 -04:00
Chris Boden
5755a5f739
Merge branch 'refs/heads/master' into 0.2-beta
2012-07-13 01:16:08 -04:00
Chris Boden
3c617d96a2
Plugging memory leak
...
Apparently assigning a property to an object will prevent the object from being destroyed.
Thanks to @igorw to finding this memory leak
2012-07-13 00:55:15 -04:00
Chris Boden
1e298c634b
Version tagging
2012-07-12 19:52:04 -04:00
Chris Boden
6d55e18dec
mbstring no longer required for Ratchet
2012-07-12 15:41:30 -04:00
Chris Boden
f8a9eb56b5
API docs
2012-07-12 15:21:54 -04:00
Chris Boden
c15c324424
[WebSocket] UTF-8 checking
...
mb_check_encoding first, as it's much faster, fail fast
Only do the other check if message is under 10k characters
Large payloads crawl otherwise
2012-07-12 13:29:12 -04:00
Chris Boden
89c24bd637
[WebSocket] UTF-8 checks
...
New method to check UTF-8
All non-binary AB tests passing
2012-07-12 12:12:08 -04:00
Chris Boden
fd9e03bd99
API docs and cleanup
2012-07-11 15:43:54 -04:00
Chris Boden
beacefa832
Version bump
2012-07-11 11:37:18 -04:00
Chris Boden
145de0d407
Cleanup
2012-07-11 11:00:44 -04:00
Chris Boden
d2294fa6a4
[WebSocket][Tests] Passing AB tests 3.* and 7.*
2012-07-11 10:45:34 -04:00
Chris Boden
70ba5d18d5
[WebSocket] Added missing method
...
Re-added the disableVersion method to WsServer
Updated composer meta
Updated composer lock file with latest React changes
2012-07-09 15:28:40 -04:00
thrashr888
f529d36305
updated socket connection event name based on react-php/react commit 70bc398270c8dc8f2cb8e7b9fbf2dbbf96599fd2
2012-07-09 03:09:54 -07:00
Chris Boden
a1550994a1
Fixed composer breakage
2012-07-08 00:23:29 -04:00
Chris Boden
34fee70e04
Versioning
2012-06-17 23:04:25 -04:00
Chris Boden
f176790ed8
[WebSocket] RFC compliance
...
Close connection if payload is not UTF-8
Fixed several AB 6.* tests
Refs #13
2012-06-16 12:49:28 -04:00
Chris Boden
cea49e714b
[WebSocket] RFC Fragmentation
...
AB tests 5.* passing
Refs #13
2012-06-16 12:20:14 -04:00
Chris Boden
ccf7114a90
[WebSocket] RFC spec
...
AB fix 5.1, 5.2
Close connection on fragmented control frames
Refs #13
2012-06-16 11:54:15 -04:00
Chris Boden
f0d605a42e
[WebSocket] RFC Protocol Compliance
...
Refs #13
Fixed AB tests: 2.5, 4.*
RFC fails connections on bad control frames
2012-06-16 11:49:46 -04:00
Chris Boden
fdff37ba60
CS
2012-06-15 09:56:16 -04:00
Chris Boden
5d1cabc751
[WebSocket] Fixed missing request headers bug
...
Accidentally removed HTTP request headers from connections
Added them back
2012-06-14 16:07:16 -04:00
Chris Boden
49d68ba7df
[WebSocket] Hixie refactoring
...
Created parent interface for messages and frames
Created Hixie Connection
Applied updated interfaces to Hixie versions
Removed __toString on msgs/frames since there could be 2-3 types returned
2012-06-14 15:07:52 -04:00
Chris Boden
439ac1234f
[WebSocket] Cleanup
...
Removed some obsolete code
Handshakes always returns a response
2012-06-14 11:24:18 -04:00
Chris Boden
87dcd1d510
[WebSocket] Re-scoped variable
...
Protecting Frame::$data to prevent overflow error
Correct frame contents is fetched from ::getContents()
2012-06-14 10:54:26 -04:00
Chris Boden
9d2939e1e8
[WebSocket] Cleanup
...
Added a couple coverage unit tests
CS
2012-06-13 23:06:12 -04:00
Chris Boden
f1612a603f
[WebSocket] Separating responsibilities
...
Separated HandshakeNegotiator into HttpRequestParser and VersionManager
Moved WsConnection to Version specific Connection
2012-06-13 22:46:08 -04:00
Chris Boden
f9ce641f04
CS
2012-06-12 20:49:05 -04:00
Chris Boden
87b6b53dce
Merge branch 'refs/heads/ws-ref-ctrls-msgs' into ws-refactor
...
Conflicts:
composer.lock
2012-06-11 18:25:15 -04:00
Chris Boden
55243550af
[WebSocket] Refactoring
...
Updated deps; React Socket notify client of shutdown
Separated core interfaces into many
Removed initial version support out of handshake negotiator
Moved message parser responsibility to each version
Removed __toString method from MessageInterface as to not confuse message from payload
Support for RFC control frames
Support message concatenation
[BCB] (temporary) WsConnection hard coded to RFC version
Handshake checks for \r\n\r\n anywhere, not just at end of string
2012-06-09 19:38:44 -04:00
Chris Boden
724a15ceb2
[Server] Stream over Libevent
2012-06-03 21:26:20 -04:00
Chris Boden
b27c9700f4
[WebSocket] Refactored Frame masking/payload
2012-06-03 12:14:53 -04:00
Chris Boden
3a530c8c24
[WebSocket] RFC Masking
...
Full un/masking capabilities on RFC6455 Frames
2012-06-03 11:55:35 -04:00
Chris Boden
9f0e29fe7f
[WebSocket] Frame masking
2012-06-03 02:03:16 -04:00
Chris Boden
54479da9d5
[WebSocket] Messaging
...
Fluent interface on MessageInterface::addFrame
RFC6455 Message unit tests
RFC handling TCP concatenation (refs #31 )
2012-06-02 22:08:27 -04:00
Chris Boden
7790ef39a1
[WebSocket] Frame overflow
2012-06-02 21:11:29 -04:00
Chris Boden
291bd5da5a
[WebSocket] RFC6455 Framing work
...
New code to create a frame
Unit tests for new code
API cleanup
2012-06-02 15:44:18 -04:00
Chris Boden
e42abf912f
Removed most of the mbstring calls
...
Moving forward we're going to assume `mbstring.func_overload` is off.
For that reason we're not going to call `mb_` functions when checking byte level strings.
2012-06-01 23:07:25 -04:00
Chris Boden
e38f81af64
Minor cleanups
2012-05-21 13:16:33 -04:00
Chris Boden
ff07104316
AutobahnTestSuite
...
Added files to test Ratchet against the AutobahnTestSuite
Bumped version v0.2b
Updated how to handle control frames to run the test suite
2012-05-20 13:24:37 -04:00
Chris Boden
530469295b
[WebSocket] Un-framing encoding
...
Parsing incoming RFC6455 frames with mb_string
2012-05-20 02:03:53 -04:00
Chris Boden
e9825e0ba7
[WebSocket] Message refactoring
...
Moved the message buffering into its own class
2012-05-20 01:04:09 -04:00
Chris Boden
ac7cc55d5f
Oops - TCI fix
2012-05-20 00:11:04 -04:00
Chris Boden
0ef0410ab6
Cleanup
...
CS
Removed a var_dump
Removed garbage from a unit test
2012-05-19 23:57:20 -04:00
Chris Boden
935866c036
[WebSocket] Refactoring
...
Separated handshake negotiation into its own class
`HandshakeNegotiator` deals with Request/Response classes
These changes are geared towards separate responsibility
Refs #29
2012-05-19 23:43:30 -04:00
Chris Boden
d075b99c26
[WebSockets] Handshake encoding + case insensitivity
...
Updated RFC6455 handshaker to check values case insensitively
Made sure RFC6455 handshaker matches encoding properly
Added mbstring as a requirement for Ratchet
Refs #28 , #30
2012-05-19 23:42:13 -04:00
Chris Boden
27716fef78
[WebSocket] Encoding bug fix
...
In the handshake verifier, make sure we're checking byte length, not string length
2012-05-19 23:01:40 -04:00
Chris Boden
986edd9562
[WAMP] [BCB] Publishing
...
BC break: Updated the `WampServerInterface` to have a strict API
Exclude and Eligible are now always arrays acting like black/white list
Changed `uri` to `topic` to be more generic with Pub/Sub
Added unit tests for `onPublish`
2012-05-19 13:30:58 -04:00
Chris Boden
598da1e8b0
[Server] Long running tweaks
...
Added commands to [IoServer] that should be called in long-running scripts
Removed version information from composer
Updated dependencies
2012-05-16 17:16:50 -04:00
Chris Boden
cfd05b0557
[Server] Close fix
...
Another close fix from server->client close
2012-05-14 16:58:24 -04:00
Chris Boden
6e44d6bafa
[WebSocket] Bug fix on close frame
2012-05-14 16:33:46 -04:00
Chris Boden
f729be2ef3
[WebSocket] [WAMP] Sub-Protocols
...
Updated how Ratchet handles WebSocket sub-protocols
Broke out WsServerInterface to not extend MessageInterface;
Components will instead use Interface segregation principle
WAMP is now able to work without the developer having to
manually enable the WAMP sub-protocol
2012-05-12 22:42:56 -04:00
Chris Boden
1582853255
[Server] Fixed remoteAddress not being set on Connection
...
Updated to latest version of `React`
Fixed bug where `$conn->remoteAddress` always returned "127.0.0.1"
This will result in IpBlackList working properly
Added unit tests for IoServer
2012-05-12 19:35:39 -04:00
Chris Boden
d05cac8b6c
[Io] Handle Application Exceptions
2012-05-11 11:59:18 -04:00
Chris Boden
5f80c291b7
CS and API docs
2012-05-11 00:51:11 -04:00
Chris Boden
710ec2535f
[WAMP][BCB] Subscribe protocol compliance
2012-05-10 23:14:59 -04:00
Chris Boden
55e11bac7e
[Server] Methods over closures, StreamSelectLoop
2012-05-10 22:24:47 -04:00
Chris Boden
4735218aa0
[BCB] Namespace changes
...
Removed the `Component` namespace
Removed the `Resource` namespace
Renamed components:
`IOServerComponent` => `IoServer`
`WebSocketComponent` => `WsServer`
`SessionComponent` => `SessionProvider`
`WAMPServerComponent` => `WampServer`
`IpBlackListComponent` => `IpBlackList`
`FlashPolicyComponent` => `FlashPolicy`
2012-05-08 23:14:28 -04:00
Chris Boden
5785a1ca93
Factory LSB
2012-05-08 16:33:58 -04:00
Chris Boden
ef6e777f31
Guzzle changes
...
Taking advantage of RequestFactory LSB
New tests to make sure Guzzle returns what's expected
2012-05-08 12:46:21 -04:00
Chris Boden
b537d8c98d
[Flash] Removed Command object calls
2012-05-07 21:06:51 -04:00
Chris Boden
5078aa2e4c
Merge branch 'refs/heads/master' into socket-server
2012-05-07 21:03:01 -04:00
Chris Boden
d9bc1af385
[WAMP] Cleanup
...
Removed all Command classes (WAMP and global)
We-wrote WAMP unit tests to match
refs #22
2012-05-07 20:59:47 -04:00
Chris Boden
bbea3e8e05
CI fix (last time :-|)
2012-05-07 19:37:55 -04:00
Chris Boden
949e5119db
Autoload fix
2012-05-07 19:27:39 -04:00
Chris Boden
f5005d1a4e
Composer correction
2012-05-07 19:20:19 -04:00
Chris Boden
d30c8358ef
[BCB] [WIP] Overhaul
...
React at the core of Ratchet, refs #6
Removed Commands (except WAMP), refs #22
Updated Guzzle to 2.4 branch, refs #20
Fixed some Hixie bugs, refs #21
2012-05-07 18:49:13 -04:00
Mike Almond
52b1704155
FlashPolicy all the things
...
$policy = new Ratchet\Component\Server\FlashPolicyComponent();
$policy->addAllowedAccess('192.168.1.120', '8000');
$io = new Ratchet\Component\Server\IOServerComponent($policy);
$io->run(843);
2012-05-07 13:44:48 -04:00
Chris Boden
af35aab345
True errors
2012-05-06 14:27:14 -04:00
Chris Boden
dbc40b821d
ConnectionInterface updates
...
Added write/end methods to Connections
Created decorator class implementing ConnectionInterface
2012-05-06 13:18:21 -04:00
Chris Boden
8404f911a3
Fixes from Guzzle update
...
Updated RequestFactory to match updated Guzzle RequestFactory API
2012-05-04 21:00:55 -04:00
Chris Boden
8ab79d217f
Guzzle update
...
Updated Guzzle to 2.4.1
Fixed code to pass unit tests from update
2012-05-04 18:17:23 -04:00
Mike Almond
6374bb3dac
Removing a method that isn't available in sockets and fixing validation and tests
2012-05-04 10:20:24 -04:00
Mike Almond
532323c497
Code cleanup and start of some commenting
2012-05-03 06:22:23 -04:00
Mike Almond
26d339dec7
Hixie now returns a Guzzle object for the handshake
2012-05-01 14:50:29 -04:00
Mike Almond
e7ed247393
[FlashPolicy] Updating the flash policy component
2012-05-01 14:49:54 -04:00
Chris Boden
86b3343b6f
[WAMP] unit tests and fix
...
Increases code coverage on WAMP
Fixed a bug found while writing tests
2012-04-29 19:21:29 -04:00
Chris Boden
381dd7bab6
API docs and message length
...
RFC6455 Message::getPayloadLenght now returns a value
2012-04-29 19:20:59 -04:00
Chris Boden
852e5777e3
Silently fail unblock
...
If the user unblocks and address that was not blocked, silently fail
2012-04-29 13:53:10 -04:00
Chris Boden
550b32e1e7
IpBlackList
...
Fixed bug where onClose was propagated if onOpen wasn't
Filter out ports from IP4 addresses
2012-04-29 13:20:26 -04:00
Chris Boden
6be16bea4a
Added IpBlackListComponent
...
refs #4
2012-04-29 12:35:46 -04:00
Chris Boden
b0d5274985
[WAMP] Oops, committed unit tests
...
Adding the unit tests for WAMP to the repo!
2012-04-28 23:46:23 -04:00
Chris Boden
9e667dfc8b
[WAMP] Work
...
Unit testing WAMP; 0 -> 84% coverage
Fixed an Event command bug
API documentation
2012-04-28 19:32:32 -04:00
Chris Boden
228d0b8627
Composite Command updates
...
Unit tested Composite
Corrected interface to be E_STRICT compliant
Refactored enqueue method
2012-04-28 18:25:57 -04:00
Chris Boden
fb6351c60f
[Sessions] API fix in accordance w/ Symfony BC breaks
2012-04-26 21:14:07 -04:00
Chris Boden
b6b2099415
Merge branch 'refs/heads/symfony/sessions'
...
Conflicts:
composer.json
composer.lock
2012-04-26 21:13:48 -04:00
Chris Boden
162d490b55
API Docs
2012-04-26 20:56:12 -04:00
Chris Boden
d91a88219b
[WAMP] Static Factory
...
I'm sorry...
refs #11
Optionally, statically register namespaces for Command Factory
2012-04-26 20:22:55 -04:00
Chris Boden
45c44fb841
Branding
2012-04-26 20:05:53 -04:00
Chris Boden
c2642e1c74
[WAMP] Store sessionId in Connection
2012-04-26 20:01:12 -04:00
Chris Boden
56768b5963
Merge branch 'refs/heads/tickets' into wamp
2012-04-26 19:49:58 -04:00
Chris Boden
daf8731790
[WAMP] Welcome message
2012-04-26 19:49:49 -04:00
Chris Boden
4654acb7d6
Replaced Connection::getId() with resourceId property
2012-04-25 22:59:46 -04:00
Chris Boden
aa51ea53f9
IO adds remoteAddress to Connection
2012-04-25 22:15:06 -04:00
Chris Boden
dd79245ecf
Simplified
...
Removed magic methods from Connection(Interface)
Connection is closer to a POPO now
2012-04-25 21:58:12 -04:00
Chris Boden
01ccbcf8c8
Fixed inheritdoc syntax
2012-04-25 21:00:08 -04:00
Chris Boden
3908a69741
Cleanup
2012-04-25 20:50:07 -04:00
Chris Boden
e06aa30096
BC Break - Server::run parameters change
...
Updated IoServerComponent::run parameters
* $port is now first
* only $port is required
* SocketInterface is last and optional
2012-04-22 13:15:43 -04:00
Chris Boden
a4bc626fae
[Session] Fixes, cleanup, docs, tests
2012-03-29 17:42:42 -04:00