2014-03-31 57 views
6

我已經爲PHP中的websockets設置了Ratchet。它使用(ws:// localhost:8080)從我的JavaScript客戶端正確連接併成功發送/接收消息。但我想傳遞一些參數,如(ws:// localhost:8080?param1 = value)。我無法弄清楚如何在我的PHP腳本中訪問param1。在棘輪web套接字請求中訪問額外的參數

如果可能的話在MessageComponentInterface :: onOpen(ConnectionInterface $ conn)方法中。

或更好:我可以將這些參數與ConnectionInterface $ conn關聯起來。所以我有他們的進一步溝通。

我已經關注http://socketo.me/docs/hello-world

+0

http://stackoverflow.com/questions/29965445/how-to-access-guzzle-querystring-parameters-in-ratchet-websockets – fatffatable

回答

13

截至a very recent update,您現在可以訪問此像這樣:

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

我其實只是碰到了這個問題我自己。經過測試,它的工作完美。

+0

嗨,我只是試圖這個網址ws:// localhost:8080?用戶ID = 1 和我試圖解析querystring使用$ querystring = $ conn-> WebSocket-> request-> getQuery(); ($ conn-> WebSocket-> request-> getQuery()); 但它打印 狂飲\ HTTP \查詢字符串對象 ( [fieldSeparator:保護] =>& [valueSeparator:保護] => = [URLEncode的:保護] => RFC 3986 [聚合:保護] => [數據:保護] =>數組 ( ) ) –

+1

其工作fine.When我打印$查詢字符串表示其如下狂飲\ HTTP \查詢字符串對象 ( [fieldSeparator:保護] =>& [ valueSeparator:protected] => = [urlEncode:protected] => RFC 3986 [聚合:保護] => [數據:保護] =>數組 ( [USER_ID] => 10 [receiver_id] => 20 ) )現在如何得到USER_ID和receiver_id – Pradeepta

+1

'$查詢= $ conn-> WebSocket-> request-> getQuery() - > toArray();' – JIM