[WebSocket] Only select one sub-protocol, fixes #103

This commit is contained in:
Chris Boden 2013-07-20 12:38:23 -04:00
parent 9a50835637
commit 5676161277
2 changed files with 8 additions and 11 deletions

View File

@ -199,19 +199,15 @@ class WsServer implements HttpServerInterface {
* @return string * @return string
*/ */
protected function getSubProtocolString(\Traversable $requested = null) { protected function getSubProtocolString(\Traversable $requested = null) {
if (null === $requested) { if (null !== $requested) {
return '';
}
$result = array();
foreach ($requested as $sub) { foreach ($requested as $sub) {
if ($this->isSubProtocolSupported($sub)) { if ($this->isSubProtocolSupported($sub)) {
$result[] = $sub; return $sub;
}
} }
} }
return implode(',', $result); return '';
} }
/** /**

View File

@ -27,10 +27,11 @@ class WsServerTest extends \PHPUnit_Framework_TestCase {
public function protocolProvider() { public function protocolProvider() {
return array( return array(
array('hello,world', array('hello', 'world'), array('hello', 'world')) array('hello', array('hello', 'world'), array('hello', 'world'))
, array('', array('hello', 'world'), array('wamp')) , array('', array('hello', 'world'), array('wamp'))
, array('', array(), null) , array('', array(), null)
, array('wamp', array('hello', 'wamp', 'world'), array('herp', 'derp', 'wamp')) , array('wamp', array('hello', 'wamp', 'world'), array('herp', 'derp', 'wamp'))
, array('wamp', array('wamp'), array('wamp'))
); );
} }