需要一些帮助理解nodejs和socket.io

对不起,这个问题相当无知,但是我对这两种技术有点困惑。 我在C#中编写了一个使用Fleck的networking服务器,并且一切正常,但是我意识到我可能找不到可以运行.NET应用程序的托pipe提供程序。

我想使用websockets,我发现socket.io是非常受欢迎,但我不确定它是什么。 纠正我,如果我错了,但是,它就像写一个服务器在JavaScript中,并运行与node.exe应用程序的JavaScript文件,然后服务器正在运行? 人们如何find提供这种服务的托pipe服务提供商?

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

有几家公司将承载您的节点应用程序。 它与您提供文件的过渡Web主机不同,它们为您提供文件。 在使用节点时,您正在编写实际的Web服务器。

一些stream行的周围是:

@Roest:虚拟服务器听起来很有趣。 这种方法有什么优点和缺点? 另外,考虑到nodejs是如何受到欢迎的,它的web服务器托pipe支持如何受到限制? 人们如何使用它?

在使用虚拟服务器的时候,你会对服务器上运行的东西感到满意。

优点自由,你可以select你想要在你的机器上运行的所有软件。 在使用nodejs的时候,你会想要一些定制的软件在你的应用程序中运行。 大多数情况下,这是您的数据库层,您可以select。

缺点你必须保持它。 就像@Roest所说的那样,这对于大多数人来说并不是什么好处,因为这直接关系到虚拟服务器给你的自由,但这是你需要考虑的。

我认为你看到有限的支持nodejs的原因是因为它相对较新,而且它很容易设置你自己。

我想使用websockets,我发现socket.io是非常受欢迎,但我不确定它是什么。 纠正我,如果我错了,但是,它就像写一个服务器在JavaScript中,并运行与node.exe应用程序的JavaScript文件,然后服务器正在运行?

这几乎就是nodejs,或者至less你是如何使用它的。 Nodejs本身就是在你的服务器上运行的Google的V8 javascript引擎,以及大量的库和C绑定,允许你以V8引擎不允许的方式与你的服务器交互。

这是nodejs中的一个web服务器的例子( 非常有限)

 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/ – 非常强大的networking服务器,但仍然给你很多的自由。 https://github.com/nodeapps/http-server – 简单的networking服务器,我主要使用它作为一个命令行工具,即时通过HTTP服务器上的文件。

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

其中socket.io是nodejs的一个模块。 根据你的扩展定义,这可能是错误的词语使用。 大多数情况下,使用socket.io时,你将使用现有的http服务器,然后扩展,或者用socket.io封装你的服务器。 我写了一个关于nowjs如何做这件事的以前的解释 。 我的猜测是socket.io非常相似。

要回答这个问题的大部分:是的,你仍然会用JavaScript写你的代码。 你将只使用socket.io API。

@travis已经涵盖了关于node和socket.io的所有知识

我只想说,你不必购买专门的节点special主机。

我的游戏是用Ubuntu的VPS托pipe的

我觉得这很容易部署和维护。 有一个Ubuntu软件包,安装需要四行复制/粘贴

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

ps:我没有使用socket.io,但我发现einaros / ws库更less被夸大了。