写在前面的话
此次项目部分资源来自b站黑马程序员的教程,自己在此基础上整合了mybatis,同时做了一些本地化,本文是为了让自己更好地理解websocket而记录的。
其实了解websocket的原因还是因为毕业设计,自己本来是从事数据分析方向的没想到竟被抽到了web类的题目(s批选题方式),自己学java也只是学到ssm这块,这次为了毕业设计重学java,讲的很烂,各位海涵。本次资源将会上传到github,连接在最后
1,环境以及注意事项
本次项目环境要求为tomcat7以上(我用的是8.0),数据库为mysql8.0,maven,使用编译器为IDEA,使用浏览器为谷歌,其他也可以,别用IE
pom.xml
项目文件自带,导入即可
mysql
本人使用的mysql为8.0,端口为3307,如果同为8版本及以上改自己端口号(一般是3306)直接使用。如果是5.7,请将config.xml的为com.mysql.cj.jdbc.Driver改为com.mysql.jdbc.Driver,同时maven工程mysql版本改为为5.1.40。
此外需在此项目使用的数据库(没有就自己建库与表,下面是建表语句)执行:set global time_zone=’+8:00’
因为暂时未做消息记录功能,但个人觉得不难,有空我再完善,下面只有用户表
create table t_user(
id varchar(255),
nickname varchar(255),
password varchar(255)
)
2,websocket相关知识记录
-
先写一些废话:websocket是一种全双工通信,你可以理解为双车道允许双向通车,与之相对的就是单工与半双工。
-
常见聊天室使用协议:
- 轮询:顾名思义,定时查询,浪费资源
- 传统的socket技术:是属于长连接,但双方都不说阿虎就会造成资源浪费
- WebSocket协议实现方式:它是一种长链接,只能通过一次请求来初始化链接,然后所有的请求和响应都是通过这个TCP链接进行通讯,这意味着它是一种基于事件驱动,异步的消息机制,握手与分手为HTTP,消息请求传送为TCP