websocket协议

简介

websocket是一种全新的协议,基于TCP。提供了一种B/S架构之间全双工的通信模式。主要解决HTTP协议只能由客户端发起请求的这种限制。WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。

在websocket协议出现之前,HTTP的这种限制,是通过ajax的轮询和comet技术来解决的,可以参见这里

特点

  • 建立在 TCP 协议之上,服务器端的实现比较容易。
  • 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。
  • 数据格式比较轻量,性能开销小,通信高效。
  • 可以发送文本,也可以发送二进制数据。
  • 没有同源限制,客户端可以与任意服务器通信。
  • 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL,用法与HTTP协议类似,(使用HTTP的通用首部中的Connection和Upgrade字段将HTTP协议转换成使用websocket协议)。

语言支持

JavaEE 7中出了JSR-356:Java API for WebSocket规范。不少Web容器,如Tomcat,Nginx,Jetty等都支持WebSocket并实现了J2EE的定义。Tomcat从7.0.27开始支持 WebSocket,从7.0.47开始支持JSR-356。

demo可以参考这里,有JS客户端、tomcat的sdk包实现的客户端、以及一个开源项目(Java-Websocket)实现的客户端例子。

其他语言如C/C++/Python/JS等也都有相应支持

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容