Commit Graph

180 Commits

Author SHA1 Message Date
Chris Boden
534375160a [Server] IoServer cleanup
Removed React event loop as a requirement; loop can be run outside
Removed Server as a requirement for Connection; wasn't used anymore
2012-07-17 17:22:51 -04:00
Chris Boden
5a80a67f03 [WAMP][BCB] Init new serer component
Moved WampServer to ServerProtocol
New WampServer component
New Topic class
2012-07-17 16:57:05 -04:00
Chris Boden
3a844edbfd [WebSocket] Performance
No more sprintf calls
2012-07-15 11:57:42 -04:00
Chris Boden
1afd42d987 PHP 5.4 tests 2012-07-14 18:52:44 -04:00
Chris Boden
e27ab9891b [WebSocket] Encoding
Added the ability to turn UTF-8 encoding checks off to increase performance
Separated encoding checks into its own set of classes
Encoding checks now use mbstring or iconv depending on availability
2012-07-14 16:44:36 -04:00
Chris Boden
188e9f04ce [Server][WebSocket] Performance
Switched IoServer::factory to use React factory (libevent stable)
Bit operations in Frame for performance gains
Added performance tests back to fuzzing config
2012-07-14 11:58:26 -04:00
Chris Boden
288f74a9f1 [WebSocket] RFC Frame tests
Removed global @coverage annotation in favour of per-method
This allows better coverage results, less false-positives
New tests: Reserved bits, masking, buffer underflows
2012-07-13 20:05:22 -04:00
Chris Boden
f86230fd16 [WebSocket] Removed deprecated code
Removed some unused Frame code in favour of newer APIs
Removed RFC's Message::frame and Frame::create methods
2012-07-13 19:58:44 -04:00
Chris Boden
0c55aa6bef Test cleanup
Added the AutobahnTestSuite Fuzzing Server to AB tests
giving another language (Python) to compare Ratchet to
Added a profile option for make
Cleaned up the tests directory structure
2012-07-13 19:53:18 -04:00
Chris Boden
14959b6ea5 PHP min req bump
PHP <= 5.3.4 now required to coincide with Symfony's updated requirement
2012-07-13 19:46:49 -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
2d9967b066 Version bump in test conf 2012-07-13 10:24:51 -04:00
Chris Boden
54b072884c Merge branch 'refs/heads/master' into 0.2-beta
Conflicts:
	composer.lock
	src/Ratchet/ConnectionInterface.php
2012-07-12 20:00:03 -04:00
Chris Boden
1e298c634b Version tagging 2012-07-12 19:52:04 -04:00
Chris Boden
fd9e03bd99 API docs and cleanup 2012-07-11 15:43:54 -04:00
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