2010-09-21 16 views
0

我在詢問有關哪種編程語言最適合以下情況的建議。我應該爲JavaScript客戶端的TCP服務器使用哪種編程語言?

該程序將充當TCP網絡應用程序中的服務器,使用預先寫好的框架提供輸出到瀏覽器的JavaScript客戶端。

服務器程序將需要'永遠在線',並且能夠處理JSON。

我的第一個直覺是使用PHP,因爲它可以運行相同的Web服務器,並具有預先存在的JSON和TCP功能。有沒有辦法在服務器上運行PHP腳本,而無需打開瀏覽器來「觸發」腳本執行? - 腳本必須在不超時的情況下運行數小時。

其他被認爲是C#,C++,Java的語言。

在此先感謝。

+0

爲什麼遠程腳本必須「始終打開」?你不能偶爾從你的JavaScript客戶端發出請求嗎? – 2010-09-21 09:39:46

回答

1

node.js

主頁上的第一個例子說明它是多麼容易在構建服務器它

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(8124, "127.0.0.1"); 
console.log('Server running at http://127.0.0.1:8124/'); 
+0

你是否推薦這個服務器? – Greg 2010-09-21 09:52:40

+0

是的,JavaScript也可以在服務器端使用。我已經更新了包含示例服務器代碼的答案。 – 2010-09-21 09:55:49

0

任何事情都可以提出觸發PHP腳本執行的請求,它不一定是瀏覽器。例如,一個cron作業可以簡單地請求一個特定的頁面並且它將被執行。或者它可以execute it directly

+0

儘管PHP並不是無限期運行請求的完美候選人。 – 2010-09-21 09:45:07

+0

這取決於他在做什麼。如果它是輕量級的,但長時間運行,我沒有看到它的問題。如果他正在進行光線追蹤或其他...然後是的。 – colithium 2010-09-21 09:50:55

0

它看起來像你想運行一個PHP腳本將數據推到瀏覽器即時的。 PHP並不理想,因爲它是io-blocking,當沒有足夠的可用線程時會變得非常慢/崩潰。這從可擴展性的角度來看非常糟糕。 Java對此非常理想,因爲它使您能夠控制線程的處理方式。如果您確實希望實時向您的瀏覽器推送數據,那麼xhr長輪詢就是您想要的。 APE服務器是迄今爲止我已經找到了這個最好的解決辦法:

http://www.ape-project.org/

作爲一個側面說明,你可以運行PHP腳本服務器端沒有瀏覽器。對於linux系統,您需要使用php-cli來執行此操作。爲了得到php-cli,在終端中輸入sudo -s,回車,輸入你的密碼,回車,輸入sudo apt-get install php-cli,點擊y,然後再次回車。然後,創建一個在同一目錄下名爲yourfilename.run文件作爲你的PHP文件,並插入以下到。運行文件:

PHP -f name_of_php_file.php

允許在終端要執行的文件(通過右鍵單擊並選擇它),然後雙擊它在終端中打開它。 Voila,你的腳本在沒有瀏覽器的情況下運行。

但再一次,如果您試圖將數據推送到您的瀏覽器實時,PHP是一個不錯的選擇。花時間看看猿服務器。

相關問題