本意是想自己试着做一个网络聊天室的,正好React也没学过,就学着写一下。这个项目每天摸几个小时,摸了俩星期,大概整的时间一个星期可能。目前可以实现单对单在线聊天,然后也是这个时候才发现,好像前端没有安全存储聊天记录等消息的途径?(localStorage和sessionStorage均为明文存储的字符串,且最大存储大小为5MB,redux之类的store存储在页面关闭时就会被清空,除此以外还有什么能用的真的知识盲区了) 总之就突然变成没啥用了(不能存聊天记录的聊天室就很奇怪),于是乎就当个玩具放上来看个乐呵。这个项目是前端部分,还有一个后端部分,可能有后续也可能没有
- react,本来就是为了学一下React写的,上手写了之后才发现跟Vue的差别确实有点大,react是一个更纯粹的库,扩展性极高,自行封装一些组件也很有意思(但react好像默认不使用style-scoped,不论在哪定义的class,只要引入了就全局可用)
- react-router-v6,路由守卫设置起来比vue麻烦一点,但也挺有意思
- axios,网络请求用,虽然项目中更多的地方是用了websocket进行数据传输
- websocket,主要使用的传输手段,传统的“实时”聊天的实现方法无非几种,其中轮询和websocket用的最多,但轮询对性能的耗费更高,同时websocket通信也没用过,所以就选用了websocket做这个项目
- rsa,用于加密传输登录密码
将config-example.json
重命名为config.json
并填入关键字段baseURL
、websocketURL
、publicKey
并将useMock
改为false(前提是后端得开着),然后使用yarn install
安装依赖,yarn start
运行