2020-07-20

这是第一次更新开发日记,经过大约10天开发,目前前端后端基本功能已经可以正常使用。基础的多媒体传输,大文件传输,文本传输,以及成员列表同步已经完成。

主要问题主要是软件效率以及兼容性方面,因为没有选择使用框架,浏览器兼容特别是safari兼容让人一言难尽,这两天引入的hammerjs触屏库在safari也没能正常工作。

后端主要问题在内存占用方面,聊天服务器内存占用以及稳定性相对较好。但是文件服务器使用multer中间件,在传输大型文件时内存占用飙升,影响服务器性能,关于post文件流处理还需要进一步学习。

2020-07-21

原本TChat是用common js编写,随着规模逐渐变大,换用typescript很有必要,今天花几个小时把原来的项目用typescript重写,目前基础功能完美移植,下一步需要针对新的协议修改前端代码

2020-07-22

这次后端重构和重新设计通信协议,前端也需要重新设计接收模块,趁这个机会将原本比较混乱的代码也重构一下。把消息收发,自动重连,消息预处理封装成一个TChatService类,解耦合更利于今后的升级与维护。这个类是通讯的核心模块,提供onMessage,onConfig,onAlert,onNetworkChange四个事件,构造器参数url,retryLimit。

  1. url – 服务器地址
  2. retryLimit – 失败重连次数
  3. onMessage – 收到消息时触发
  4. onConfig – 收到配置信息时触发(比如成员列表的变动事件,重命名事件
  5. onAlert – 收到弹出消息提醒请求
  6. onNetworkChange – 与服务器连接断开时触发

可以算是前端的一次大升级,协议相关bug相信也能解决不少。

2020-07-29

最近两天又开始继续重构过程,后端趋于稳定,前端因为不打算使用框架,所以只能拆分不同的功能模块,最终主程序通过ui类暴露的接口控制所有ui。因为使用ts开发,编译后的js模块在浏览器环境无法直接运行,于是使用webpack打包各个模块。打包后也尽可能地减少了https请求次数。

v 0.1.1

  • add 图片,音频,视频消息的支持
  • fix 修复ctrl+v无法粘贴
  • fix 一些隐性的类型bug

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

WebRTC入门 上一篇
第一篇Hexo博客 下一篇