今日总结
- 用WebSocket实现了记录每个在线用户鼠标位置的功能
- 快速排序和堆排序
WebSocket
WebSocket可以主动的向对方发送或接收数据,就像Socket一样;并且WebSocket需要类似TCP的客户端和服务端通过握手连接,连接成功后才能互相通信,是h5开始提供的一种在单个TCP连接上进行全双工的协议。考虑实时性,允许服务端发送代码给客户端。
WebSocket主要解决的就是实时通信的问题,如果http做的话只能用异步轮询。但是效率低且浪费时间,但是WebSocket建立连接之后就特别丝滑,
主要方法
@OnOpen:连接建立时进行的操作
@OnMessage:能够用收到发过来的信息
@OnClose:关闭时的操作
同时整个过程中也可以通过下面的代码发送信息
RemoteEndpoint.Basic basicRemote = mouseMoveEndPoint.session.getBasicRemote();
basicRemote.sendText(s);
前端我使用的是JQuery,
感觉接受起来也非常丝滑。
业务流程
首先写了一个简单的登陆页面(springboot写的),登陆成功之后把信息存在session(http的session)中用于后面简单的判断。
然后就是WebSocket的部分,这部分其实还就是crud,只不过熟悉了一下WebSocket的使用。
最后是前端,WebSocket操作几乎和后端的使用差不多,所以还是挺丝滑的,JQeury用起来也不是很熟悉。
效果的话就是在不同的浏览器中登陆之后,动鼠标可以看到每一个浏览器鼠标位置的变化。视频好像不能放,就算了。
排序
写了快排和堆排序整了一晚上。。。真是哭了,希望明天能写完所有的排序,到时候再一起总结。
反思
- 基础太差了,快排和堆排序之前都学过默写都能默写出来,结果时间久了居然忘的这么干净…下次需要好好看看是什么再写代码,免得写到一半又去看概念,结果浪费了更多时间。
- 今天因为写排序,没来得及看jvm。
- 了解WebSocket之后,下面想写一个你画我猜的小游戏练练手,然后还想用socket+http模拟一个服务器。
- 还是太浮躁,老是不会走想着直接跑,今天写排序就是…写WebSocket的demo也是。
- Linux要带着看看用用。