zoukankan      html  css  js  c++  java
  • WebSocket技术

    webSocket技术

    在html5技术革新中,加入了WebSocket技术
    1.webSocket实际是TCP连接
    webSocket在最初将发送http连接请求到服务器端,
    但是在header中加入了附加信息,
    这些附加信息会在服务器端接收到并解析,
    使得服务器端知道需要把这一个http连接升级到WebSocket的连接,
    服务器随后将响应返回给客户端,     这样WebSocket连接就建立了。
    2.在发送数据的时候,数据包的开头以0x00开始,以0xFF结束,
    用以区分每次发送数据包
    3.其他:webSocket客户端由js编写,服务端可以使用各种语言,需要遵循webSocket的规范,实现能够支持webSocket的应用服务器端
    

    在webSocket之前的轮询技术

    1.这种模式在接触webSocket的期间,自己就想到了,如果使用ajax异步请求,可以让服务器不响应ajax,当需要给客户端发信息的时候再响应,这样客户端接收信息后,再请求,这期间服务器如果有信息要发给客户端的话,先缓存,等客户端在发请求的时候,再一起响应。这样循环询问,当有信息就响应,无信息就等待。
    2.Iframe 隐藏标签,标签的src指向是服务器servlet,每次触发时间到servlet时,servlet就会把响应数据写入Iframe的隐藏标签,响应的数据的形式是JS可执行代码,这样就会自动执行,以达到传输数据的目的;
    缺点是,不知道连接状态;而且Iframe已经过时
    

    socket.io

    代码地址:https://github.com/socketio/socket.io/
    
    实现了传统的轮询机制,包括服务端:
    a.Adobe® Flash® Socket
    b.AJAX long polling
    c.AJAX multipart streaming
    d.Forever Iframe
    f.JSONP Polling
    
    实现了webSocket,包括服务器的实现,可以使用node.js搭建
    创建服务器的代码示例:
    var server = require('http').createServer();
    var io = require('socket.io')(server);
    io.on('connection', function(socket){
    socket.on('event', function(data){});
    socket.on('disconnect', function(){});
    });
    server.listen(3000);
  • 相关阅读:
    作业5

    Linux系统管理4
    作业
    递归训练1:在两个长度相等的排序数组中找到上中位数
    LeetCode:面试题 08.05. 递归乘法
    LeetCode:面试题 08.06. 汉诺塔问题
    LeetCode:22. 括号生成
    如何仅用递归函数和栈操作逆序一个栈
    LeetCode:面试题 03.02. 栈的最小值
  • 原文地址:https://www.cnblogs.com/gavinsp/p/5729834.html
Copyright © 2011-2022 走看看