2011-07-26 249 views
5

嗨我有一個用PHP編寫的運行套接字服務器。Javascript客戶端如何連接到PHp套接字服務器?

服務器正在偵聽連接..任何想法如何我的客戶端(寫在JavaScript)將連接到服務器併發送數據到它?我只知道如何將一個php客戶端連接到套接字服務器,但不確定如何連接一個javascript客戶端。

謝謝你們所有的時間。

+0

JavaScript是客戶端腳本,它不提供開放套接字afaik。我認爲在寫作的時候是不可能的。 –

+1

你在運行什麼JS環境?節點? WSH? ASP?一個瀏覽器插件?瀏覽器查看網頁?還有別的嗎? – Quentin

+0

@Lionel Chan - JS是一種通用編程語言,並沒有提供大量的I/O週期 - 來自主機環境。 – Quentin

回答

-1

簡單地說 - 你不能這樣做 - 這將是一個安全漏洞,讓客戶端代碼打開套接字連接。

但是,您可以模擬 - 將您的數據作爲AJAX請求發送到另一個PHP頁面,然後使該PHP頁面通過套接字進行通信。

更新2017年

與此同時,websockets成了一件事。請注意websocket協議是不同於generic networking sockets

+0

Ummm:http://code.google.com/p/phpwebsocket / – Relic

0

我不知道任何提供JS的任意套接字功能。 Web Sockets的支持有限(我認爲這需要您修改服務器以符合空間)。否則,簡單的XHR可能會滿足您的需求(這將需要您修改服務器以充當Web服務)。如果服務的運行原因與頁面不同,則您需要使用CORS或使用解決方法,如JSONP

4

回答一個老問題的情況下,人們發現它,因爲我通過谷歌做到了。

當今幾乎所有當代瀏覽器都支持WebSocket Javascript API。通過WS,瀏覽器中的客戶端JS可以打開使用PHP或其他語言編寫的全雙工套接字。服務器必須實現WS協議,但現在有用於PHP,Java和其他語言的WS庫。在這個寫作的時刻,WS實現看起來像是一個移動的目標,但是,我目前正在與WS/JS瀏覽器客戶端通信,並與WS/Java服務器進行通信,而且它似乎正在工作。

建議在您選擇的服務器語言中使用Google搜索實現WS實現。

希望這會有所幫助!