From 410550b3b211d73db85bbce51a2b78f5732b359c Mon Sep 17 00:00:00 2001
From: Vladimir Kartaviy <vkartaviy@gmail.com>
Date: Sat, 22 Sep 2012 01:18:53 +0300
Subject: [PATCH 1/2] #49 Fixed WsServer::getSubProtocolString method return
 value and related unit-test

---
 src/Ratchet/WebSocket/WsServer.php             | 2 +-
 tests/Ratchet/Tests/WebSocket/WsServerTest.php | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/Ratchet/WebSocket/WsServer.php b/src/Ratchet/WebSocket/WsServer.php
index 144b914..4b2534c 100644
--- a/src/Ratchet/WebSocket/WsServer.php
+++ b/src/Ratchet/WebSocket/WsServer.php
@@ -208,7 +208,7 @@ class WsServer implements MessageComponentInterface {
             }
         }
 
-        return substr($string, 0, -1);
+        return substr($string, 0, -1) ?: '';
     }
 
     /**
diff --git a/tests/Ratchet/Tests/WebSocket/WsServerTest.php b/tests/Ratchet/Tests/WebSocket/WsServerTest.php
index b02e301..510b5aa 100644
--- a/tests/Ratchet/Tests/WebSocket/WsServerTest.php
+++ b/tests/Ratchet/Tests/WebSocket/WsServerTest.php
@@ -45,6 +45,6 @@ class WsServerTest extends \PHPUnit_Framework_TestCase {
         $method = $class->getMethod('getSubProtocolString');
         $method->setAccessible(true);
 
-        $this->assertEquals($expected, $method->invokeArgs($this->serv, array($req)));
+        $this->assertSame($expected, $method->invokeArgs($this->serv, array($req)));
     }
 }
\ No newline at end of file

From fc17a0b3955755d0f16ebd33f9a543a314d3229c Mon Sep 17 00:00:00 2001
From: Vladimir Kartaviy <vkartaviy@gmail.com>
Date: Sat, 22 Sep 2012 04:01:28 +0300
Subject: [PATCH 2/2] Rewritten sub protocols string building

---
 src/Ratchet/WebSocket/WsServer.php | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/Ratchet/WebSocket/WsServer.php b/src/Ratchet/WebSocket/WsServer.php
index 4b2534c..7577ef6 100644
--- a/src/Ratchet/WebSocket/WsServer.php
+++ b/src/Ratchet/WebSocket/WsServer.php
@@ -200,15 +200,15 @@ class WsServer implements MessageComponentInterface {
             return '';
         }
 
-        $string = '';
+        $result = array();
 
         foreach ($requested as $sub) {
             if ($this->isSubProtocolSupported($sub)) {
-                $string .= $sub . ',';
+                $result[] = $sub;
             }
         }
 
-        return substr($string, 0, -1) ?: '';
+        return implode(',', $result);
     }
 
     /**