2014-10-06 63 views
0

它是我第一次使用它。
好吧,我試圖使用websocket分機。但我不明白:/
在這篇文章中http://www.sanwebe.com/2013/05/chat-using-websocket-php-socket/我下載它,在文件夾中提取出來的,我打開命令提示符下執行此Xampp + Php Websocket最大執行時間錯誤

c:\xampp\php\php-cgi.exe -q c:\inetpub\wwwroot\CC2\ws\server.php 

我在2瀏覽器中打開index.php文件,並進行連接。兩個瀏覽器也連接。但30秒後,連接丟失。我看着cmd,給這個錯誤

C:\Users\traBolic>c:\xampp\php\php-cgi.exe -q C:\inetpub\wwwroot\CC2\ws\server.php 
<br /> 
<b>Fatal error</b>: Maximum execution time of 30 seconds exceeded in <b>C:\inetpub\wwwroot\CC2\ws\server.php</b> on line <b>28</b><br /> 

我不明白這是正常的嗎?我怎樣才能保持連接在很長一段時間?

回答

0

你需要每

<?php set_time_limit (0); ?> 

設置PHP無限的最長執行時間,因爲PHP有​​30秒的默認最大執行時間。 你應該看看Socket.IO,它比php更好地處理Websockets。

問候

達斯汀

編輯:

喔......抱歉,沒有解釋socket.io ... Socket.IO是一個的NodeJS模塊: 的node.js是來自Google Chrome的V8 Javascript引擎用於服務器。所以你可以在命令行上用javascript運行一個服務器。 Socket.io就像我說的一個節點模塊。在節點JS中,您可以從npm導入模塊,這是node.JS的數據包管理器。它通過websockets提供客戶端與服務器之間的雙向連接功能,並提供長時間輪詢xhr請求的後備功能。想出它的最簡單方法就是嘗試它。例如,您可以嘗試啓動此聊天應用程序:Chat

首先你需要安裝node.JS,它應該是簡單的node.JS

可以啓動的Node.js服務器你已經用PHP做同樣的方式:

控制檯:

>node index.js 

現在你應該可以通過打開索引使用聊天。 html文件。

要回答你的問題:不,你不能用php啓動socket.io。你既不能使用xampp來啓動一個nodejs應用程序。

現在互聯網上有很多教程。有人已經創建的列表:Tutorials

最佳

達斯汀

+0

感謝您的幫助。但即時通訊新的PHP現在。我不知道如何使用socket.io。我認爲socket.io不使用PHP不是嗎?你能證明我如何在Windows xampp上使用socket.io? – traBolics 2014-10-06 15:22:09

+0

ohh ...抱歉沒有解釋socket.io ... ...正在編輯... – 2014-10-06 22:39:10

+0

在啓動NodeJS之前就明白了。我完全離開PHP?我對嗎? – traBolics 2014-10-07 15:32:43

1

如果你已經很熟悉PHP和你不想要移動到一個全新的平臺(node.js中/插座。 io),你可以用PHP實現websockets。

查看Thruway項目,該項目是WAMP(Web應用程序消息傳遞協議)的PHP實現。它簡化了獲取使用PHP的websockets並提供SubPub和RPC。

我是高通公司的開發人員之一,所以如果您有任何問題或需要幫助,我們可以在github上打開一個問題。

如果您想了解更多關於WAMP,here's的好地方,請立即開始。

此外,php-cgi被設計爲由您的Web服務器運行。檢查XAMPP是否有php-cli.exe或普通的舊php.exe並使用它。

+0

好的,如果你說不需要移動nodejs,那麼我就不用。 @達斯汀的回答set_time_limit(0)有效。但是這一次我有另一個問題:/關閉命令提示符後,保持活的c:\ xampp \ php \ php-cgi.exe -q c:\ inetpub \ wwwroot \ CC2 \ ws \ server.php命令。在Linux中,它可以作爲服務啓動。我可以在Windows中做到這一點嗎? – traBolics 2014-10-08 12:55:56

+0

好吧,我作爲一個Windows服務開始命令解決問題。 – traBolics 2014-10-08 14:15:12