socket:socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

ajax:

  • 通过HTTP请求+响应模式的方式来发送和接受数据;
  • 当执行代码发出请求时,浏览器会使用可用的socket来进行数据发送,为了提高性能,浏览器会和服务器之间建立多个socket通道;
  • 缺点:
    • 当有多个请求的时候就无法保证服务器的接受顺序;
    • 对于不太重要的发送信息(如当前鼠标的坐标),每次发送除了数据还包含了许多不太需要的文本内容;且这些信息可能并不需要等到响应后再发送;

WebSocket:

  • 内容:

    • 浏览器实现的WebSocket API(被W3C标准化)
    • 服务器实现的WebSocket协议(被IETF标准化为RFC6455)
  • websocket还是建立在HTTP之上的,连接必须通过握手来建立;和HTTP请求的区别是,握手完成之后,客户端和服务器端就建立了类似TCPsocket这样的通道;在服务器端响应后,客户端和服务器端收发数据时,数据本身之外的信息非常少;
  • 问题:
    • 关闭并不意味断开连接:当客户端或服务器端触发close事件时,意味着TCO连接可能关闭了;但可能在一些意外的条件下,close事件不会被触发。解决的方法可以利用超时检查;
    • JSON:随着程序复杂度的提升,往返的数据量会变大,此时会严重依赖JSON进行手动编码和解码;由于这部分工作非常常见,所以要将其抽象出来;
    • websocket还是一项新技术;

最新文章

  1. 非域客户端的office使用RMS加密服务出现‘介绍“信息权限管理服务”’服务的提示
  2. angularjs SyntaxError: Unexpected token  in JSON at position 0
  3. 在虚拟机中安装红旗桌面7.0 Linux操作系统的详细图文教程
  4. zk textbox 更改字体大小及高度
  5. [deviceone开发]-do_FrameAnimtionView的简单动画示例
  6. 关于UID和GID的创建、修改、删除;简要举例
  7. bisController
  8. the error code is 2203
  9. mysql命令分类(DML、DDL、DCL)
  10. 欧拉工程第72题:Counting fractions
  11. 【UVA10765】Doves and bombs (BCC求割点后联通块数量)
  12. iOS 面试题汇总
  13. 使IIS Express支持其他网络客户端访问
  14. hadoop,yarn和vcpu资源配置
  15. php利用gd实现图片的边框
  16. RecycleView和CardView
  17. Python的classmethod和staticmethod区别
  18. hosts管理工具1.0发布了。。。。
  19. C#基础知识之泛型
  20. Python初始环境搭建和Pycharm的安装

热门文章

  1. C#面向对象面试题集锦
  2. Robot Motion(imitate)
  3. Integer Inquiry
  4. 提高php运行效率的50个技巧
  5. Windows 的 AD 域寄生于 Linux 机器
  6. hdu1151 二分图(无回路有向图)的最小路径覆盖 Air Raid
  7. python 的编码问题
  8. Launchpad添加openPGP keys
  9. 54. 八皇后问题[eight queens puzzle]
  10. Android dp px转化公式