当前位置:   article > 正文

socket、websoket、netty、socket.io 对比_netty和websocket区别

netty和websocket区别


Socket
Socket中文意思“套接字”,是进程间进行网络通信的抽象。
通过Socket提供的API可以:
  Connect:和别的节点建立连接;
  Bind:绑定本地指定端口;
  Read:读取其它节点发送的数据;
  Write:向其它节点发送数据;
  Close:关闭连接针对不同的传输层协议,Socket提供了不同的API,可以是TCP协议,也可以是UDP协议;
  注意:Socket通信特点是全双工的,即通信两端可以互相发送、接收消息;这点很重要,WebSocket就是利用这一特性。
  
WebSocket
WebSocket可以理解为“Web”+“Socket”为什么需要WebSocket:Web通信一般基于HTTP协议,
     但是HTTP最初设计为无状态的短连接【虽然http2/3已经做了改进,支持长连接、多路复用等特性】,
     对于连续传递数据的场景可能需要频繁的进行连接创建、传输数据、连接断开操作。而HTTP是基于TCP实现的,
     建立TCP连接需要三次握手,断开连接需要四次挥手。这其实是非常低效且浪费资源的。
     为了解决上面的问题,WebSocket协议基于TCP实现了长连接机制,一次连接周期内可以进行全双工通信,
     避免频繁创建连接、断开连接带来的性能开销。
     
Netty
Netty是Java语言实现的应用层网络框架,其对网络通信模型做了更高层次上的抽象。
     使用Netty进行网络编程时,可以任意选择底层通信协议。如:HTTP通信,或者WebSocket,
     当然也可以基于TCP/UDP自定义通信协议。
     
socket.io和netty-socketio
socket.io是基于Node.js实现的网络通信框架,支持基于事件的双向通信。
     使用了WebSocket【或HTTP长连接】作为底层的通信协议。主要用于浏览器和服务器间的通信。
     socket.io在基本的通信能力基础上,还提供一些非常实用的功能,如:自动重连心跳检测多路复用机制

netty-socketio
netty-socketio是基于Netty框架实现socket.io服务端。
     关于协议和实现:协议定义了标准和规范,其实现方式或者说实现语言可能有多种,
     比如:socket.io本质上也是一种通信标准,其client和server可以有多种实现方式。
     如:原生的server是通过Node.js实现的。而netty-socketio是基于netty实现的socket.io server。
     python-socketio是基于python语言实现的socket.io server。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/973968
推荐阅读
相关标签
  

闽ICP备14008679号