码迷,mamicode.com
首页 > 其他好文 > 详细

socket.io简介

时间:2018-12-24 02:41:15      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:++   代码实现   一个   比较   com   swift   客户   封装   pack   

websocket是一种比较简单的协议,各种语言中都有很多实现版本,实际上它们差别不大,都是在websocket的基础上做些封装,随便选一个即可。

socket.io就是众多websocket库中的一种,它并不像其它库那样简单地实现了一下websocket,而是在websocket外面包裹了厚厚的一层。普通的websocket(例如ws库)只需要服务端就够了,socket.io自定义了一种基于websocket的协议,所以socket.io的服务端和客户端必须配套。简言之,如果服务端使用socket.io,那么客户端就没得选了,必然也用socket.io的客户端。

socket.io的服务端是基于node实现的(只提供了这一种语言的服务端实现),同时它提供了多种语言的客户端,包括JavaScript、Java、C++、Swift、Dart等,可以看出,socket.io是为了移动端才支持多种语言的,socket.io的目标很高远:统一天下,做最好的websocket库。

socket.io在websocket基础上提供了哪些功能呢?主要包括如下几个方面:

  • 可靠稳定。即便服务端使用代理或者负载均衡,也能够连接成功;
  • 跨平台。各种浏览器、各种移动端操作系统、各种形状的终端都支持;
  • 掉线重连和掉线检测。这跟socket.io自定义的ping协议有关;
  • 封装完好。API简洁清晰,支持room风格的websocket。

然而,在node中ws库远远要比socket.io流行,这可能是因为人们都喜欢接近本质的东西而不喜欢过多封装。ws已经足够好用了。基于ws,socket.io的多余功能完全可以自己用少量代码实现。

参考资料

socket.io
https://www.npmjs.com/package/socket.io
ws
https://www.npmjs.com/package/ws

socket.io简介

标签:++   代码实现   一个   比较   com   swift   客户   封装   pack   

原文地址:https://www.cnblogs.com/weiyinfu/p/10166508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!