项目描述:魔力耳朵的主要产品 --- 一款三端(win/mac/ipad)均可使用的客户端软件,国外外教老师和国内学生通过该客户端进行实时在线英语教学,主要以1v4为主,也包含1v2的模式,包括课堂的预复习/定级测试等等。项目的客户端主要通过第三方音视频sdk实时共享老师与学生音视频。而上课系统主要负责课堂内所有事件以及整体流程的统一控制。通过服务端/前端/客户端共同搭建起一个英语在线学习平台。
上课系统后端服务主要采用java语言进行开发维护,springboot作为服务的后端框架。服务部署为三地(华北,美西,新加坡)独立部署,通过rocketmq进行课堂消息通讯,大致流程为通过lua+nginx+redis的流量定向分发将用户与教室均匀合理的分发到不同机器并建立长链接,课堂内所有操作通过ws传到服务端,服务端通过rocketmq将老师与学生的课堂操作连接起来,并最终通过ws按各自处理规则下发到教室,从而完成整堂课程。
我主要参与:我参与了服务后期的ws长链框架的替换与代码重构,从基于stomp的ws框架切换到基于netty的netty-socketio长链接框架。
技术点有:
1、