2017-08-21 85 views
0

我試圖訪問使用棘輪的Websocket服務器的onOpen函數中的傳入連接的查詢參數。無論是official documentationStackOverflow帖子說,你可以通過訪問傳遞給函數的ConnectionInterface對象的WebSocket屬性做到這一點:RatchetPHP沒有用於新連接的WebSocket屬性

public function onOpen(ConnectionInterface $conn) { 
    $query = $conn->WebSocket->request->getQuery(); 
} 

然而,沒有WebSocket財產傳入的連接對象。當我開始這個服務器與客戶端連接,一個通知發出,這將導致致命的錯誤調用null對象上的功能:

PHP公告:未定義的屬性:棘輪\服務器\ IoConnection :: $的WebSocket

我使用PHP 7.0,我需要在我composer.json最新的穩定版本:

"require": { 
    "cboden/ratchet": "^0.3.6" 
} 

我連接客戶端的瀏覽器JS控制檯代碼直接複製來回米Hello World文檔以及:

var conn = new WebSocket('ws://localhost:8080?foo=bar'); 
conn.onopen = function(e) { 
    console.log("Connection established!"); 
}; 

如果它是有幫助的,只有公共屬性我看到$conn是:

bufferSize 
stream 
readable 
writable 
closing 
loop 
buffer 
listenerse 
decor 
+0

嗯...我不知道該文檔在哪裏,你能提供鏈接嗎?通常你必須聲明和「使用」特定的命名空間,然後調用該類。你還記得它是哪一類嗎? – Anthony

回答

0

我有同樣的問題,我發現:

$querystring = $conn->httpRequest->getUri()->getQuery(); 
parse_str($querystring,$queryarray); 

允許您訪問查詢參數。