2011-11-09 42 views
1

我正在開發一個使用WebSockets來交流玩家位置和狀態等的多人Javascript/canvas遊戲。我很喜歡在Javascript中編寫此代碼,但它是服務器端websockets的東西,我有麻煩了。向本地Web服務器添加WebSockets支持

我不知道如何實現WebSocket支持通過客戶端JavaScript。我是否將模塊添加到Apache?我在PHP中使用它嗎?我是否使用類似node.js的東西?據我所知,node.js已經收到了很多關於這類東西的讚譽,但我仍然不知道除了Web服務器以外它究竟是什麼。

+0

您可以非常容易地創建一個支持具有Node.js'require(「net」)。createServer'功能的套接字的基本服務器。你必須實現WebSocket協議,我之前在http://stackoverflow.com/q/7045885上發佈了一些僞代碼(解碼客戶端 - >服務器消息)。還有可用的Node.js的現成WebSockets庫。 – pimvdb

回答

4

我會推薦使用nodejs,以及socket.io,它是一個跨瀏覽器兼容的Web套接字樣式庫。它使編寫與服務器(== nodejs)實時通信的代碼變得非常簡單。它在支持它們的瀏覽器中使用網絡套接字,或者在瀏覽器中使用其他技術。

自從您提到它以來,只是關於PHP的一個說明......在我看來,這並不是非常適合這種情況,因爲您可能知道,PHP腳本只存在請求的持續時間。這種行爲使得實現實時通信變得困難,除非你用PHP推出你自己的服務器,完全跳過Apache或者其他的服務器。

另一種選擇是使用Python,也許類似Twisted,儘管你可能需要自己實現websockets或類似的東西。

+0

謝謝。我會挑剔地看着nodejs和socket.io。我提到PHP的原因是因爲我找到了一個PHP web套接字服務器,它在命令行中運行,腳本執行連續循環檢查消息,處理消息併發送響應。很明顯,我不願意使用它,因爲這完全不符合PHP的用途。 –