Commit Graph

165 Commits

Author SHA1 Message Date
Chris Boden
6115df886d README 2012-07-11 11:36:40 -04:00
Chris Boden
2c9a446efe [Tests] Skip all binary 2012-07-11 10:43:55 -04:00
Chris Boden
baed21ed8b [WebSocket] AB tests, React update output buffer
AB tests 9.* (non-binary) all passing
2012-06-17 22:47:29 -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
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
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
070a4f1c34 [Tests] Coverage and extension checking 2012-06-01 23:41:51 -04:00
Chris Boden
9a27adfcd8 [Tests] Multiple AB WS tests 2012-05-21 11:38:24 -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
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
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
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
710ec2535f [WAMP][BCB] Subscribe protocol compliance 2012-05-10 23:14:59 -04:00
Chris Boden
ce12a977bf Filename case fix 2012-05-08 23:22:17 -04:00
Chris Boden
0d592ae875 Case sensitiviy fixes 2012-05-08 23:19:28 -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
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
decf88833c Merge branch 'refs/heads/master' into socket-server 2012-05-07 21:06:25 -04:00
Chris Boden
afa2dacf40 [Flash] Fixed unit test coverage annotation 2012-05-07 21:06:11 -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
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
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
e7ed247393 [FlashPolicy] Updating the flash policy component 2012-05-01 14:49:54 -04:00
Chris Boden
913774e072 Unit tests 2012-04-29 20:42:33 -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
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
8f653294c5 IpBlackList unit test coverage 2012-04-29 12:48:43 -04:00
Chris Boden
47e7059ed6 Mock MessageComponent common access
Updated class to match the WAMP component
2012-04-29 12:38:37 -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
b6b2099415 Merge branch 'refs/heads/symfony/sessions'
Conflicts:
	composer.json
	composer.lock
2012-04-26 21:13:48 -04:00
Chris Boden
4654acb7d6 Replaced Connection::getId() with resourceId property 2012-04-25 22:59:46 -04:00
Chris Boden
f98cda3e29 Fixed unit test namespace 2012-04-25 22:22:49 -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
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
1e9665f6cd [Session] PDO Unit Test 2012-03-29 18:31:50 -04:00
Chris Boden
a4bc626fae [Session] Fixes, cleanup, docs, tests 2012-03-29 17:42:42 -04:00
Chris Boden
9ff2d406f0 Disabling Unit test
Disabling a unit test due to failure on Travis CI...can't figure this one out...systems match perfectly, fails on TCI but not locally (or other developer's)
2012-02-08 17:17:01 -05:00
Chris Boden
a4b0990961 Typecast bug fix
Attempted to fix Travis CI failing unit test with typecasting
2012-02-08 17:11:10 -05:00
Mike Almond
8a2b9153ab Merge branch 'refs/heads/guzzle' into guzzle-refactor
* refs/heads/guzzle:
  [HIXIE] Reverting back to the proper response code.
  [TESTS] Fixing unit tests for versions
  [REFACTOR] Fixing some code based on unit tests
  [REFACTOR] Changing the handshake to return a guzzle object
2012-02-06 20:55:56 -05:00
Chris Boden
cb49cf06e7 Passing Unit Test
Turned on E_STRICT and fixed resulting unit test failures
2012-02-04 12:45:37 -05:00
Chris Boden
01804dac6c Attempted Fixes
Attempting to change some things to pass on TravisCI...even though I'm not getting any unit test failures.
2012-02-04 12:37:53 -05:00
Chris Boden
33bf91dcea Socket refactor
Moved SocketInterface and Socket to Resource namespace
2012-02-01 20:52:10 -05:00
Chris Boden
e26dc0ccde Namespace refactor fixes
Updated old namespaces from refactor
2012-02-01 19:59:56 -05:00
Mike Almond
10da7e4920 [TESTS] Fixing unit tests for versions
Adding a unit test for Hixie and fixing the unit test for RFC
2012-02-01 13:17:51 -05:00
Chris Boden
2c976d0102 Continuing logical NS refactor
Updated more components to reflect new terminology when using Ratchet components
2012-01-31 20:47:59 -05:00
Chris Boden
149a99cf7c Merge branch 'refs/heads/composer' into refactor
Conflicts:
	tests/bootstrap.php
2012-01-31 19:47:02 -05:00
Chris Boden
e1c7ce361f App -> Component Refactoring
Updating namespacing and conventions as per ticket #1
2012-01-31 08:37:51 -05:00
Chris Boden
6f244fc659 Vendor spec
Manually overrode Guzzle in composer to not fetch Guzzle's reps as they're not needed for what's used in Ratchet
Removed SplClassLoader in favour of Composer's CladdLoader
2012-01-30 21:52:29 -05:00
Chris Boden
c18cc18bb8 Working Composer
Deps, versioning, autoloader from composer implemented
2012-01-30 21:41:49 -05:00
Chris Boden
451f7f4235 Init NS Refactor
Started refactor of namespaces from "app" to "component"
Added ConnectionInterface to replace concrete Connection
Removed socket config classes
2012-01-30 17:35:49 -05:00
Chris Boden
ad9b8c1644 psr convention
Renamed lib to src
2012-01-30 17:11:30 -05:00
Chris Boden
5334f94b91 Merge branch 'refs/heads/header' into wamp 2012-01-08 21:59:17 -05:00
Chris Boden
f766278a14 Passing Tests
Finally able to do incomplete tests.  Ratchet passes (finally).
2012-01-06 22:00:35 -05:00
Chris Boden
08fa8a948f Guzzle
Implementing Guzzle to parse incoming handshake request
Functional on RFC version
2012-01-06 16:18:12 -05:00
Chris Boden
ed3cfc16da Loosened Dependencies
Removed construct dependency from ApplicationInterface - changing full decorator to changeable stack.
2012-01-04 11:22:42 -07:00
Chris Boden
8d1b2548e7 Unit test doc
Attempting to finish off the two incomplete unit tests but couldn't because of a PECL bug.
2011-12-18 14:36:56 -05:00
Chris Boden
feb6c5ab57 URI verification
Added code in handshake to verify the URI
Updated unit testing to reflect this
2011-12-17 15:46:44 -05:00
Chris Boden
5c5f9e558f Mask unit test 2011-12-05 22:32:33 -05:00
Chris Boden
788b1f66cc RFC handshake verification + unit tests
Went through section 4 of RFC 6455 making sure incoming handshake was valid with accompanying unit tests
2011-12-02 23:58:08 -05:00
Chris Boden
d85ea57ece Merge branch 'refs/heads/master' into rfc 2011-12-02 19:48:19 -05:00
Chris Boden
160291a23f Conn lambda test
Updated Connection set/get unit test to accept objects
2011-12-02 16:45:34 -05:00
Chris Boden
1f608f1d3a Stubs for RFC protocol version 2011-11-30 10:08:11 -05:00
Chris Boden
75afa73826 Unit tests
Socket interface update
Server testing
Connection setting
2011-11-24 21:53:04 -05:00
Chris Boden
0670568789 Unit Tests and fixes
Set some incomplete tests to pass
Updated an interface bug found from unit tests
2011-11-20 22:36:14 -05:00
Chris Boden
1b01582ab9 SocketInterface
Added unix socket methods to interface, replaced __call/call_user_func calls with concrete methods
2011-11-20 20:38:20 -05:00
Chris Boden
02ffd6f782 Interface change
Changed onRecv to onMessage in Interface to match a standard api
Removed Frame::__toString methods - could imply different return expectation
2011-11-20 14:53:13 -05:00
Chris Boden
5653f01f2f Message buffering & Refactoring
Refactored unframe() methods into Message/Frame classes (per protocol version)
Change onRecv of WebSocket App to use new interfaces to test statuses, resulting in reuniting a message fragmented by TCP
Wrote unit test covering most of new HyBi10 Frame class
2011-11-18 16:37:32 -05:00
Chris Boden
08db1e6fac Minor Refactoring 2011-11-15 08:22:01 -05:00
Chris Boden
f3c7dd4d7f Socket Proxy
Replaced passing SocketInterface everywhere with a proxy object
2011-11-14 15:56:30 -05:00
Chris Boden
e412f574e7 Fixed unit test coverage 2011-11-13 13:48:49 -05:00
Chris Boden
c6a91692f7 Interface Cleanup
Separated Observable interface from Decorator interface, also separated config method to its own interface
Cleaned up unit tests to reflect interface changes
2011-11-13 13:37:42 -05:00
Chris Boden
47b7110dc1 Namespaces
Fixed all the namespaces to match new folder structure
2011-11-12 20:51:54 -05:00
Chris Boden
32d9dda703 Stability
Added onError hook to observable interface
Handling errors in proper places, no longer a catchall
Temporarily throwing errors on all non-message HyBi-10 frames ("fixes" FF breaking everything)
2011-11-10 21:23:31 -05:00
Chris Boden
bf0787b7cd Removed Logging
Removed logging - use Decorator as replacement (https://raw.github.com/cboden/RatchetApps/master/lib/RatchetApps/Logger.php)
2011-11-10 10:49:23 -05:00
Chris Boden
60a8a04e40 Cleanup
Fixed bad interface implementation in Close Command
Removed old code from Composite (now in Factory)
Removed done @todo's
Cleaned up Ping/Pong
Added HyBi-10 frame/unframe test
2011-11-07 11:55:07 -05:00
Chris Boden
f9d609074c Moar cleaning
Added a few unit tests
Added MIT license
Changed Array's to array's
2011-11-01 11:01:43 -04:00
Chris Boden
d4d67eba44 Cleanup
Removed another couple unused methods
2011-11-01 09:55:10 -04:00
Chris Boden
3127efc981 Cleanup
Removed redundant Interfaces
Removed a number of unused methods
2011-11-01 09:52:41 -04:00
Chris Boden
51d0516aa3 Cleanup
Application stack working!
Existing unit tests fixed
Implemented HyBi-10 unframing
2011-10-28 14:12:39 -04:00