设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

Node.js开发指南:利用Socket.IO与doT提升性能表现

2013-10-28 13:46| 发布者: 红黑魂| 查看: 10855| 评论: 0

摘要: 教程介绍 难度: 中级 预计完成时间: 20分钟如果您的网站对于向客户机发送数据较为依赖,那么使用客户端模板以及WebSocket能够显著提高其性能表现。在今天的教程中,我们就一起来了解如何实现这一目标。简介我 们将以 ...

教程介绍

  • 难度: 中级
  • 预计完成时间: 20分钟

如果您的网站对于向客户机发送数据较为依赖,那么使用客户端模板以及WebSocket能够显著提高其性能表现。在今天的教程中,我们就一起来了解如何实现这一目标。

简介

我 们将以现有应用程序为起点,一步步了解如何使其在高流量环境下拥有更快的响应速度与更可靠的运行表现。我将向大家展示如何从应用程序代码中准确定位对应代 码段,如何对其进行修改以提升运行性能。不过首先大家需要下载我准备好的范例应用。这款应用的内容非常简单,运行目的在于随机显示服务器当中的帖子内容 ——不过对于我们这篇指南文章来讲,这已经足够了。

第一步: 准备

对我们已经下载完成的文件进行解压,为其选定文件夹或者保存位置,而后加以运行:

在我前往http://localhost:8080/看其内容。这时大家应该只能看到一个按。各位需要准一款安装了各者工具的浏览器,这样就能掌握HTTP求的实际大小。打开开者工具,而后访问Network标签。接下来点几下注意/getpost请求的大小:

这条请求只有830字节,对吧?好的,想象一下,当我们的网站人气爆棚时,可能同时有一百多万用户想看到这篇帖子,这时请求的数据总量将达到约830MB。请注意,是每篇帖子830MB!这可就不是个小数目了。

第二步: 检查

在 第二步中,我将带领大家了解如何在应用中找到能够提升性能表现的对应代码片段。在前一步中,大家已经找到了用于获取帖子内容的请求,现在我们需要了解代码 是如何实现这一过程的。大家可以利用自己熟悉的代码编辑器打开index.js文件,其中第16到第20行内容如下所示:

  1. varpostTemplate = dot(fs.readFileSync('./post.dot')); 
  2.   
  3. app.get('/getpost'function(req, res) { 
  4.    res.end(postTemplate(posts[Math.floor(Math.random() * 3)])); 
  5. }); 

就是它了!首先,帖子的模板会被编译至postTemplate变量当中。接下来,该模板会在/getpostGET请求中实现提交。这是一种非常典型的解决办法,可以说是乏善可陈。我们要对其进行变更以改进性能表现。

第三步: 设置Socket.IO

To begin the improvements, first, install Socket.IO. In your terminal type:为了实现性能提升,我们首先需要安装Socket.IO。大家需要在命令行终端内输入:

  1. npm installsocket.io 

等待命令行完成。通将以下代行添加到index.js的全部require之后将socket.io引入代

 

  1. varsio = require('socket.io');

在大家必须对Express行修改,以使其与Socket.IO作。首先,在app  definition之后加入下列内容:

  1. varserver = require('http').createServer(app); 
  2. vario = require('socket.io').listen(server); 
  3.   
  4. server.listen(8080);

接下来移除该文件中的最后一行:

之所以这么做,是因为Socket.IO的运作与HTTP Server紧密相关——而非Express app。

现在,如果大家运行该应用,应该会在自己的终端中看到如下所示的内容:
 




酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部