我应该将哪种编程语言用于JavaScript客户端的TCP服务器?

时间:2010-09-21 09:35:06

标签: c# php javascript tcp

我要求就以下情况最可接受的编程语言提出建议。

该程序将充当TCP网络应用程序中的服务器,使用预先编写的框架为输出到浏览器的JavaScript客户端提供服务。

服务器程序需要“永远在线”,并且能够处理JSON。

我的第一直觉是使用PHP,因为它可以运行相同的Web服务器,并且具有预先存在的JSON和TCP功能。有没有办法在服务器上运行PHP脚本而无需打开浏览器来“触发”脚本执行? - 脚本必须连续运行数小时而不会超时。

其他考虑的语言是C#,C ++,Java。

提前致谢。

3 个答案:

答案 0 :(得分: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/');

答案 1 :(得分:0)

任何东西都可以发出触发PHP脚本执行的请求,它不一定是浏览器。例如,一个cron作业可以简单地请求一个特定的页面,它将被执行。或者它可以execute it directly

答案 2 :(得分:0)

看起来您正在尝试运行php脚本以实时将数据推送到浏览器。 PHP并不理想,因为它是io-blocking,当没有足够的可用线程时,它会变得非常慢/崩溃。从可扩展性的角度来看,这非常糟糕。 Java是理想的,因为它使您能够控制线程的处理方式。如果您确实希望实时将数据推送到浏览器,那么xhr long轮询就是您想要的。到目前为止,APE服务器是我找到的最佳解决方案:

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

作为旁注,您可以在没有浏览器的情况下运行php脚本服务器。对于Linux系统,您需要php-cli才能执行此操作。要获取php-cli,在终端中输入sudo -s,按回车键,输入密码,按回车键,键入sudo apt-get install php-cli,点击y,然后再次按回车键。然后,在与php文件相同的目录中创建一个名为yourfilename.run的文件,并将以下内容插入.run文件中:

php -f name_of_php_file.php

允许在终端中执行文件(通过右键单击并选择它),然后双击它以在终端中打开它。瞧,您的脚本在没有浏览器的情况下运行。

但是再一次,如果你试图将数据实时推送到你的浏览器,那么php是一个糟糕的选择。花点时间研究ape-server。