zoukankan      html  css  js  c++  java
  • 【socket.io研究】0.前提准备

    WebSocket出现之前,web实时推送,一般采用轮询和Comet技术(可细分为长轮询机制和流技术两种),需要大量http请求,服务器受不了。HTML5定义了WebSocket协议,基于TCP协议,由通讯协议和编程API组成,在浏览器和服务器之间建立双向连接,以基于事件的方式,赋予浏览器实时通讯的能力。

    建立WebSocket连接的过程是浏览器首先发起一个http请求,在请求头中附带着“Upgrade: WebSocket”头信息,表名申请协议升级,服务器解析后产生应答信息,服务器与客户端的WebSocket连接就建立起来了,可以持续通信。这当然需要支持WebSocket浏览器的支持,不支持的用Comet接收发送信息来实现兼容。后面会简单介绍一下Comet。

    Express:基于Node.js平台,快速,开放,极简的web开发框架,在socket.io中使用到了Express,所以需要安装。

    1.它提供了一系列强大的特性,可以帮助构建各种web及移动设备的应用。

    2.丰富的http快捷方式的任意组合和任意排列组合的connect中间件。

    3.不对Node.js已有的特性进行二次抽象,只是在它基础上扩展web应用所需要的基本功能,不会影响性能。

    namespace:命名空间,相当于命名域,在一定的范围内,命名有效。在socket.io中用namespace实现隔离机制,在不同namespace下的客户端消息具有不可见性。

    环境搭建:

    1.首先安装node.js,笔者使用的是window环境,直接下载双击安装,然后需要设置环境变量,可以引用其他的方法设置,都是可以的,我个人这样设置的

    NODE_PATH=D:\_soft odejs ode_modules

    PATH中添加:;D:\_soft odejs;$HOME/node/bin

    2.安装Express,保存,不是临时安装,临时安装省略掉 —save

    npm install express – save

    3.安装socket.io

    npm install socket.io

    4.环境搭建完成了

    附录:

    Comet:

    1.AJAX长轮询方式:JavaScript调用XMLHttpRequest发出HTTP请求,返回值用来更改界面的显示。(服务器会阻塞请求知道有数据时才会返回或超时才返回。客户端在处理完返回数据后,会再次发送消息重新建立连接。客户端去数据是把当前服务器所有累计的变化的信息一次取回)

    2.基于iframe及htmlfile的流方式:html中包含iframe,在html界面中嵌入隐藏帧,将这个隐藏帧的SRC属性设置为对一个长连接的请求,服务器就能源源不断地往客户端输入数据。

    链接:

    中文一个还不错的Express学习网站:http://www.expressjs.com.cn/

  • 相关阅读:
    Excel 2016 Power View选项卡不显示的问题
    Base64编码
    MAPI错误0x80040107
    命令行界面 (CLI)、终端 (Terminal)、Shell、TTY的区别
    C函数调用过程原理及函数栈帧分析
    SIFT(Scale-invariant feature transform) & HOG(histogram of oriented gradients)
    Jupyter NoteBook 的快捷键
    endnote插入参考文献后的对齐方式和缩进空格
    赏月斋源码共享计划 第四期 约瑟夫问题
    LRU和LFU的区别
  • 原文地址:https://www.cnblogs.com/renyuzhuo/p/5038501.html
Copyright © 2011-2022 走看看