- 连接层问题解决方案:
- 由于设备断开或者超时时,应该设置当前设备状态为离线,这样桩才不会丢失位置
- 发现连接层问题,在类中虽然移除了 auth 这个对象
- 但是其实根本就没有移除掉 client 的 auth 对象,还保存在内存当中,后续需要解决这个问题
- 编写测试用例
- 修复设备在非正常情况下断开 socket 重连后,依然可以连接到 node 连接层,但授权对象中已不存在该设备 信息导致无法控制的问题,解决方法是设备非正常断开 socket 后,需要等待一分钟后再次连接即可
- 已修复设备断开连接后,后台系统依然显示设备在线的问题
- 查找修复设备断开连接后,后台系统依然会显示设备在线的原因 发现是 授权后保存的 authClient 对象中的对应信息没有移除导致,明天修复
- 修复设备断开连接后,后台系统依然会显示设备在线的原因
- 测试部署时,... 操作符号会导致错误,原因未知
- 通过数据库模型获取对应字段时,需要在 sequelize 实例化时写上对应字段
- 设备需要通过域名访问
- 错误和异常的区别
错误是 Error 中的一个实例,错误被创建并且直接传递给另一个函数
或者被抛出。如果一个错误被抛出了那么它就变成了一个异常
- 操作失败和 Bug
操作失败是所有正确的程序应该处理的错误情形, 只要被妥善处理,它们不一定会预示着 Bug 或是严重的问题
例如 "文件找不到" 是一个操作失败,但是它并不意味着哪里出错了,可能只是代表着程序如果想用一个文件得事先
创建它
Bug 是程序员的失误
参考链接
为什么 js 中 try catch 无法捕获异步回掉中的异常
- 解答:
try...catch 是被设计成捕获当前执行环境的异常,只能捕获同步代码里面的异常
所以,异步调用里面的异常无法捕获
- client对象的 socket.timeout 设置的延迟时间需要抽离出来,成为配置项