websocket 和socket的区别

Socket与WebSocket处于的网络层级是不对等的,很难直接比较。WebSocket在网络七层协议上的层级等同于Http,而Socket位置处于七层协议中的第四层,Socket是操作系统对TCP、UDP的封装。WebSocket处在上层,Socket处在下层,WebSocket依赖于Socket,Socket为WebSocket服务。

那么应该是拿WebSocket与Http进行比较。WebSocket常见于客户端-服务端全双工的场景,客户端可以发送消息给服务端,同时服务端也可以主动发送消息给客户端。而Http是单向的关系。只能客户端发送请求,服务端被动接收,服务端没有主动发起对话的能力。

聊天是一个典型的全双工场景:聊天的双方先将消息发送给服务端,服务端在把消息转给对方。如果使用WebSocket,得益于全双工,整个逻辑非常顺畅。而Http场景下,服务端没有主动发起请求的能力,只能维持Http长链接,或者客户端定时轮询服务端,获取最新的信息。

不过WebSocket并不普及。完整的WebSocket通信,需要客户端(浏览器)、服务端、网关节点、防火墙等一套的支持。尤其对于面向用户的环境来说,用户使用的浏览器、用户所处的网络环境,都是不能控制的。这种情况下建议不要使用WebSocket。

最后,如果迫不及待的想使用WebSocket,可以考虑使用SocketJS+SpringMVC+Tomcat8。SocketJS提高了通信的成功率:若是环境不支持WebSocket,就会采用XAR流等备选方案通信。SpringMVC也有对SocketJS的支持。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值