有几家公司将托管您的节点应用程序。它与您向他们提供文件并为您提供文件的过渡网络主机不同。使用节点时,您正在编写实际的 Web 服务器。
下面是一些受欢迎的:
@Roest:虚拟服务器听起来很有趣。这种方法的优缺点是什么?另外,考虑到 nodejs 的流行程度,它的网络服务器托管支持怎么会如此有限?人们如何使用它?
使用虚拟服务器时,您对在服务器上运行的内容充满了兴趣。
Pros
Freedom,您可以选择要在您的机器上运行的所有软件。很多时候,在使用 nodejs 时,您会希望一些自定义软件与您的应用程序一起运行。大多数情况下,这是您选择的数据库层。
缺点
你必须维护它。就像@Roest 所说,这对大多数人来说并不是什么大问题,因为这直接关系到虚拟服务器为您提供的自由,但这是您需要考虑的事情。
我认为你看到对 nodejs 的支持有限的原因是它相对较新,而且很容易自己设置。
我想使用 websockets,我发现 socket.io 非常受欢迎,但我不确定它到底是什么。如果我错了,请纠正我,但是,这是否就像用 javascript 编写服务器并使用node.exe
应用程序运行 javascript 文件然后服务器正在运行?
这几乎就是 nodejs 的本质,或者至少是你使用它的方式。Nodejs 本身是在您的服务器上运行的 Google 的 V8 javascript 引擎,以及大量的库和 C 绑定,允许您以 V8 引擎不允许的方式与您的服务器交互。
这是 nodejs 中的网络服务器示例(非常有限)
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
它只是响应Hello World
每个请求并始终返回 200 状态代码。
从这样的东西到一个简单的文件服务器是相当容易和快速的,但是一些人已经为你解决了这个问题。
http://expressjs.com/ - 非常强大的网络服务器,但仍然给你很多自由。
https://github.com/nodeapps/http-server - 简单的 Web 服务器,我主要将它用作命令行工具,通过 http 即时服务器文件。
最后,socket.io 只是 nodejs 的扩展吗?当你使用 socket.io 时,你必须用 javascript 编写你的服务器吗?再次,对于非常新手的问题,我很抱歉,但在我继续之前,我只是想了解一些基本的东西。谢谢。
socket.io是nodejs的一个模块。根据您对扩展名的定义,它可能是错误的词。大多数情况下,使用 socket.io 时,您将使用现有的 http 服务器,然后使用 socket.io 扩展或包装您的服务器。我之前写了一篇关于 nowjs 如何做到这一点的解释。我的猜测是 socket.io 非常相似。
要回答这个问题的大部分:是的,您仍然会用 javascript 编写代码。您将只使用 socket.io API。