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

Need some help understanding nodejs and socket.io

本文关键字:nodejs socket io 帮助      更新时间:2023-09-26

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

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

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

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

一些流行的如下:

  • https://devcenter.heroku.com/articles/nodejs
  • http://nodejitsu.com/
  • http://nodester.com/

@Roest:虚拟服务器听起来很有趣。有什么优点和缺点 这样的方法?另外,考虑到nodejs的流行程度如何 它的网络服务器托管支持如此有限?人们如何使用它?

使用虚拟服务器时,您对服务器上运行的内容充满信心。

优点自由,您可以选择要在计算机上运行的所有软件。很多时候,在使用nodejs时,你会希望一些自定义软件与你的应用程序一起运行。大多数情况下,这是您的数据库层,无论您选择哪个。

缺点你必须维护它。就像@Roest所说,这对大多数人来说并不是一个骗局,因为这直接关系到虚拟服务器给你的自由,但这是你需要考虑的事情。

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

我想使用websockets,我发现 socket.io 非常受欢迎 但我不确定它到底是什么。如果我错了,请纠正我,但是,是 这就像用JavaScript编写服务器并运行JavaScript一样 文件node.exe,然后服务器正在运行?

这几乎就是nodejs,或者至少是你如何使用它。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/- 非常强大的Web服务器,但仍然为您提供了很多自由。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。

@travis已经涵盖了您需要了解的有关节点和 socket.io 的所有信息

我只想说,您不必购买专用于节点的special托管。

我的游戏托管在带有 Ubuntu 的 VPS 上

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

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

ps:我不是在使用 socket.io 而是使用einaros/ws库,我觉得它没有那么夸张。