1

抱歉这个相当无知的问题,但我对这两种技术有点困惑。我用 C# 编写了一个使用 Fleck 的网络服务器,一切正常,但我意识到我可能找不到可以运行 .NET 应用程序的托管服务提供商。

我想使用 websockets,我发现 socket.io 非常受欢迎,但我不确定它到底是什么。如果我错了,请纠正我,但是,这是否就像用 javascript 编写服务器并使用node.exe应用程序运行 javascript 文件然后服务器正在运行?人们如何找到将提供此类服务的托管服务提供商?

最后,socket.io 只是 nodejs 的扩展吗?当你使用 socket.io 时,你必须用 javascript 编写你的服务器吗?再次,对于非常新手的问题,我很抱歉,但在我继续之前,我只是想了解一些基本的东西。谢谢。

4

2 回答 2

3

有几家公司将托管您的节点应用程序。它与您向他们提供文件并为您提供文件的过渡网络主机不同。使用节点时,您正在编写实际的 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。

于 2012-08-06T19:03:17.727 回答
0

@travis 已经涵盖了您需要了解的有关 node 和 socket.io 的所有内容

我只想说您不必购买special专用于节点的主机。

我的游戏使用 Ubuntu 托管在 VPS 上

我发现它很容易部署和维护。有一个适用于 Ubuntu 的软件包,安装实际上需要四行复制/粘贴

https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

ps:我没有使用 socket.io 而是使用einaros/ws库,我发现它没有被夸大得多。

于 2012-08-06T22:46:32.080 回答