websocket与socket.io区别

小知识 10-20 14:56

在最近使用vue+websocket做的项目中,服务后台的验证逻辑是在websocket链接时需要请求头添加token来完成验证。当时查阅了很多相关的资料,说websocket连接时token验证是加在请求的地址上面的,比如:ws://127.0.0.1:8080/socket?token=XXXXX。无法满足需求。最后使用了socket.io组件来调试,添加请求头。

那么到底websocket 和 socket.io 之间的区别是什么?

一、性质不同

1、websocket:websocket是一种让客户端和服务器之间能进行双向实时通信的技术。
2、socket.io:socket.io是将WebSocket、AJAX和其它的通信方式全部封装成了统一的通信接口。

二、兼容不同

1、websocket:在使用websocket时,,虽然主流浏览器都已经支持,但仍然可能有不兼容的情况。
2、socket.io:在使用socket.io时,不用担心兼容问题,底层会自动选用最佳的通信方式。

三、用途不同

1、websocket:websocket适合用于client和基于node搭建的服务端使用。
2、socket.io:socket.io适合进行服务端和客户端双向数据通信。