原有逻辑
在智慧校园助手中,学生可以通过应用查询课程表。原本的逻辑是,学生点击查询按钮后,应用会向后端服务器发送一个HTTP请求,服务器查询数据库后返回课程表数据,应用再将数据显示给用户。
修改后的逻辑
为了提供实时的课程更新和变动通知,我们决定将课程查询功能通过WebSocket实现。
建立WebSocket连接:当用户打开智慧校园助手应用时,应用会自动尝试与WebSocket服务器建立连接。
监听课程变动事件:一旦WebSocket连接建立成功,应用会向服务器发送一个消息,订阅课程变动事件。服务器在接收到这个消息后,会将该用户的ID保存起来,以便在课程数据发生变化时通知该用户。
接收实时通知:当服务器上的课程数据发生变化时(例如,教师添加了新的课程、课程时间发生了变动等),服务器会向所有订阅了课程变动事件的用户发送一个WebSocket消息。这个消息包含了变动的课程数据。
更新课程表:应用在接收到WebSocket消息后,会解析消息中的课程数据,并更新本地的课程表。由于这个消息是实时发送的,所以用户的课程表也会实时更新,无需再次发送查询请求。
关闭WebSocket连接:当用户退出应用或关闭WebSocket连接时,应用会向服务器发送一个消息,取消订阅课程变动事件,并关闭WebSocket连接。