2012-08-02 43 views
1

我已經在谷歌搜索它,並在這裏在stackoverflow有一些關於它的問題。 問題是,他們中的很多人都是舊的,所以我想他們使用舊的和不推薦的協議,而不是RFC 6455.我不知道是否是因爲這個,或者如果我做錯了什麼,但是當我嘗試它時它不起作用。如何在我的服務器中實現Websocket(RFC 6455)?

所以......

  1. 如果我沒理解好,我可以實現與客戶端aproppiate(JavaScript)的和服務器(PHP)代碼的WebSockets,而無需配置我的Apache服務器。我是對的?

  2. 憑啥我發現所有的例子需要我去命令行,做

    PHP -q C:\路徑\爲\文件\的WebSocket \ Server.php

  3. 在我發現的實現有一個默認的服務器和端口。我必須將它們更改爲用於普通網頁的服務器(本地主機)和端口嗎?還是應該告訴我的服務器聽另一個端口並將其用於websocket通信?

  4. 我在哪裏可以找到一個很好的Websockets(RFC 6455)的PHP實現?

回答

1
  1. 是的,這是正確的。

  2. 因爲Websocket服務器不使用您的Web守護程序來提供數據。在這種情況下,你正在用PHP完全編寫一個服務器守護進程。

  3. 您需要選擇一個端口,因爲您沒有使用web守護進程來爲您的websocket服務。任何未使用的端口都可以。 (主要網站here)。我們已經在生產中使用開發主分支幾個月了,而且我們沒有遇到任何問題。這是我們發現的唯一解決方案,即可用於Firefox客戶端和iPhone。

+0

謝謝!它似乎不起作用,因爲我使用相同的端口來提供網頁和websockets。我不明白棘輪如何工作或配置,但https://github.com/lemmingzshadow/php-websocket/工作。現在我將修改事情並理解它是如何工作的,以便在我的服務器中實現它。 – Oriol 2012-08-05 21:57:16

+0

@Oriol:僅供參考,您鏈接的庫似乎只做HyBi 10和13,而不是RFC 6455.我假設您具體詢問了有關RFC 6455的原因。 =) – Crontab 2012-08-06 13:20:20

+0

我想要RFC 6455,因爲它是最後一個版本,所以我想這是最安全和最好的,並且由最後一個瀏覽器支持。但我認爲HyBi 13與RFC 6455一樣,是我錯了嗎? – Oriol 2012-08-06 17:21:16