zoukankan      html  css  js  c++  java
  • H5 WebSocket通信和WCF支持WebSocket通信

    关于WebSocket不太懂,上网搜了一些资料,说是 WebSocket 是 html5 规范发布的新协议,和 http协议完全是两个不同的概念,或者说基本没关系;WebSocket 协议 和 http协议的唯一联系点在于,WebSocket 协议为了兼容现有浏览器的握手规范而采用了 http协议中的握手规范 以建立WebSocket连接;

    那WebSocket通信跟http协议有什么不一样的呢?

    这篇文章中有详细介绍:http://blog.csdn.net/pacosonswjtu/article/details/52035252

    HTML5 WebSocket 设计出来的目的就是要取代轮询和 Comet 技术,使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力。 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。因为 WebSocket 连接本质上就是一个 TCP 连接,所以在数据传输的稳定性和数据传输量的大小方面,和轮询以及 Comet 技术比较,具有很大的性能优势.

    WebSocket 规范

    WebSocket 协议本质上是一个基于 TCP 的协议。为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息”Upgrade: WebSocket”表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。

    请求数据的方式可以用WebSocket通信方式,那么WCF服务可以支持WebSocket通信吗

    在这个篇文章中找到了答案:https://msdn.microsoft.com/zh-cn/library/hh977020.aspx

    发现WCF4.5中新增了一个NetHttpBinding协议,支持Websocket的。但是需要在在windows 8及以上的系统中支持。

    Websocket通信协议,需要浏览器的支持,且对硬件服务器要求:server2012或window 8以上操作系统才能支持。

  • 相关阅读:
    python——socket,IO多路复用(select),socket server实现多并发
    python——多线程,多进程,协程
    python——装饰器,迭代器,生成器
    time模块,datetime模块
    re模块,paramiko模块
    Freemaker中使用中括号来包含标签
    Freemaker中使用中括号来包含标签
    freemarker Velocity获取request,session
    freemarker Velocity获取request,session
    freemarker Velocity获取request,session
  • 原文地址:https://www.cnblogs.com/zhouhongqian/p/8204296.html
Copyright © 2011-2022 走看看