WebSocket介绍

2019-03-22 22:25|来源: 网路

WebSocket 规范的目标是在浏览器中实现和服务器端双向通信.双向通信可以拓展浏览器上的应用类型,例如实时的数据推送(股票行情),游戏,聊天/im 等.

在浏览器中通过http仅能实现单向的通信,comet可以一定程度上模拟双向通信,但效率较低,并需要服务器有较好的支持; flash中的socket和xmlsocket可以实现真正的双向通信,通过 flex ajax bridge,可以在javascript中使用这两项功能. 可以预见,如果websocket一旦在浏览器中得到实现,将会替代上面两项技术,得到广泛的使用.面对这种状况,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通讯。

websocket规范由两部分组成,一部分是浏览器中的 websocket api, 由w3c 制订, 一部分是websocket 协议, 由ietf制订,目前是draft状态.websocket的协议比较简单, 客户端和普通的浏览器一样通过80或者443端口和服务器进行请求握手,服务器根据http header识别是否一个websocket请求,如果是,则将请求升级为一个websocket连接,握手成功后就进入双向长连接的数据传输阶段. websocket的数据传输是基于帧的方式: 0x00 表示数据开始, 0xff表示数据结束,数据以utf-8编码.

在JavaEE7中也实现了WebSocket协议。

webSocket 目标: 打破传统的web请求响应模型, 实现管道式的 实时通信。
打开一个浏览器和服务器的通信通道,持续连接!
服务器给浏览器推送数据 非常方便!
web的实时消息通信: 聊天,股票,游戏,监控等等。
webSocket程序分为 2部分, 浏览器端和服务器端。
tomcat7开始支持webSocket, (支持最新webSocket开发规范  JSR356)


我们打开tomcat7的lib目录看看:

WebSocket-api.jar这个定义webSocket应用程序开发接口!
tomcat7-webSocket.jar tomcat服务器对于webSocket接口的实现!!

书生整理于网络

相关问答

更多
  • 如何使用WebSocket[2022-02-04]

    网络套接字是下一代WEB应用程序双向通信技术,它是基于一个独立的socket并且需要客户端浏览器支持HTML5 一旦你了解了网络套接字与WEB服务器的连接,你将可以从浏览器发送数据到服务器并且可以接收由服务器返回的响应数据。 以下是创建一个新的WebSocket对象的API: 复制代码 代码如下: var Socket = new WebSocket(url, [protocal] ); 这里第一个参数是指要连接的URL,第二个参数是可选的,如果需要的话,则是指定一个的服务器支持的协议。 WEB Socke ...
  • 如何使用WebSocket[2023-08-22]

    服务端代码 class Program:WebSocketServer { static void Main(string[] args) { TcpUtils.Setup("beetle"); Program server = new Program(); server.Open(8088); Console.WriteLine("websocket start@8088"); System.Threading.Thread.Sleep(-1); } protected override void OnC ...
  • 如何使用WebSocket[2024-03-27]

    需要用到webSocket,所以搜集了一下使用方法,总结下自己的经验 首先要导入webSocket的包,git下载地址https://github.com/square/SocketRocket 导入 这个包,然后配置环境,导入需要用的框架 libicucore.dylib//这个现在Xcode里没有,需要自己找到资源后手动添加 CFNetwork.framework Security.framework Foundation.framework。 要记得添加pch文件。 然后编译,工程运行没有错误,进行下 ...
  • 如何使用WebSocket[2023-05-29]

    您好,很高兴能帮助您 先装websocket服务器客户端 【java】kaazing websocket getway 【python】mod_pywebsocket 【javascript】node.js 回答 2. WebSocket JavaScript 接口定义 [Constructor(in DOMString url, in optional DOMString protocol)] interface WebSocket { readonly attribute DOMString URL; ...
  • 如何使用WebSocket[2022-07-13]

    WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 Cocos2d-x引擎集成libwebsockets,并在libwebsockets的客户端API基础上封装了一层易用的接口,使得引擎在C++, JS, Lua层都能方便的使用WebSocket来进行游戏网络通讯。 引擎支持最新的WebSocket Version 13。 在 ...
  • 如何使用WebSocket[2023-11-23]

    WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 Cocos2d-x引擎集成libwebsockets,并在libwebsockets的客户端API基础上封装了一层易用的接口,使得引擎在C++, JS, Lua层都能方便的使用WebSocket来进行游戏网络通讯。 引擎支持最新的WebSocket Version 13。 在 ...
  • 如何使用WebSocket[2022-08-29]

    WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 Cocos2d-x引擎集成libwebsockets,并在libwebsockets的客户端API基础上封装了一层易用的接口,使得引擎在C++, JS, Lua层都能方便的使用WebSocket来进行游戏网络通讯。 引擎支持最新的WebSocket Version 13。 在 ...
  • 如何使用WebSocket[2022-03-16]

    WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 Cocos2d-x引擎集成libwebsockets,并在libwebsockets的客户端API基础上封装了一层易用的接口,使得引擎在C++, JS, Lua层都能方便的使用WebSocket来进行游戏网络通讯。 引擎支持最新的WebSocket Version 13。 在 ...
  • 如何使用WebSocket[2022-01-25]

    引擎支持最新的WebSocket Version 13。   在C++中使用   详细代码可参考引擎目录下的/samples/Cpp/TestCpp/Classes/ExtensionsTest/NetworkTest/WebSocketTest.cpp文件。   头文件中的准备工作   首先需要include WebSocket的头文件。   #include "network/WebSocket.h"   cocos2d::network::WebSocket::Delegate定义了使用WebScoc ...
  • WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如Chrome,Safari,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome,从chrome12就已经开始支持,随着协议草案的不断变化,各个浏览器对协议的实现也在不停的更新。该协议还是草案,没有成为标准,不过成为标准应该只是时间问题了,从WebSocket草案的提出到现在已经有十几个版本了,目前最新的是版本17,所对应的协议版本号为13,目前对该协议支持最完善的浏览器应该是chrome,毕竟We ...