## 1.效果展示
第一次写博客,不知道怎么放置录制好的视频,所以只能放几张图片作为效果图
## 2.知识储备
传统的HTTP协议是一个请求-响应协议,请求必须先由浏览器发给服务器,服务器才能响应这个请求,再把数据发送给浏览器。换句话说,浏览器不主动请求,服务器是没法主动发数据给浏览器的,换做im也是同样的道理,当然也可以利用轮训的方式去查看服务器是否有新的数据,但是这种方式会有请求压力大和消息的实时性不够的弊端。
而webSocket的出现是让浏览器和服务器之间可以建立无限制的全双工通信,任何一方都可以主动发消息给对方,这样在im的实现上就能够满足两个用户之间正常的通讯。
webSocket在实现上主要是分成四个步骤
1. 连接到Socket服务器
2. 监听来自服务器的消息
3. 将数据发送到服务器
4. 关闭Socket连接
## 3.实现思路
在描述实现过程前,我想来想去觉得还是有必要先大概描述一下我的实现思路:
1.首先用户的个人信息是在模拟器启动后,连接到Socket之前自动生成唯一用户,并且将用户通过flutter的SharedPreferences存储到本地,之后热更新或者热重启,先查找本地是否存在该用户&