本文章附简单聊天例子源码,支持多人聊天和房间切换,先放一张图表示诚意。
没错我无耻的用了icq三个字母,项目是一个springboot +springmvc 的项目 然后加了socketIO 的pom引用,很干净其他啥都没加,因为也是初学者,其实好多也不明白,就跟大家分享下自己的见解。
官方例子java下载地址:https://download.****.net/download/u010191034/11941897
我做的例子java下载地址:https://download.****.net/download/u010191034/11963583
注释:
1 官方例子是客户端与服务端分离的main方法启动,然后直接打开html文件就能用
2 我的例子是springboot+springmvc ,html也放到项目里面了,直接启动DemoApplication 就会启动socketio,直接访问icqController中的接口就能获取到页面,项目有个小问题,启动后重启项目,socketio常会爆端口冲突,多次重启就能解决,也可以在配置中更换端口。
SocketIO适合的场景:
需要与服务器多次,频繁双工通信,就是你主动给服务器发数据,服务器主动给你推送数据。
比如说,QQ的聊天,哔哩哔哩的弹幕,都有和服务器很频繁的数据交换需求,这时候就需要持续的数据交互,或者某些很频繁的请求等。
为什么用SocketIO:
如果没有socket我们不知道服务器端什么时候有新的数据,这是时候就需要轮询请求服务端,如果有1000个客户端每个都轮询请求,服务器肯定会吃不消,直接就被玩死了,而scoketIO是用长链接的方式,耗费资源远低于轮询。
SocketIO和WebSocket的区别:
简单的理解,SocketIO 对WebSocket进行了再次的封装,包括socket的连接断开,数据传输等,易用性socketIO高,可以理解为SocketIO包含WebSocket
SocketIO如何使用:
SocketIO的包分2部分,一部分是后台,另一部分是js,前端与后端都需要引用才能使用SocketIO,具体详见例子。
总结:
SocketIO也是刚接触,原理啥的不敢瞎说,也不想粘贴别人的博客,这个还需要大家自己根据例子多试验多了解。
————————————————————-chenchen————————————————————————————